back to indexJohn Carmack: Doom, Quake, VR, AGI, Programming, Video Games, and Rockets | Lex Fridman Podcast #309
link |
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.
link |
It was all still keyboard. We didn't even have mice set up at that time, but slowly moving, going up, picked up a key, go to a wall.
link |
The wall disappears in a little animation and there's a monster like right there and he practically fell out of his chair.
link |
It was just like, ah! And games just didn't do that. You know, the games were the gods eye view.
link |
You were a little invested in your little guy. You can be like, you know, happy or sad when things happen.
link |
But you just did not get that kind of startle reaction. You weren't inside the game.
link |
Something in the back of your brain, some reptile brain thing is just going, oh shit, something just happened.
link |
And that was one of those early points where it's like, yeah, this is going to make a difference.
link |
This is going to be powerful and it's going to matter.
link |
The following is a conversation with John Carmack, widely considered to be one of the greatest programmers ever.
link |
He was the cofounder of id Software and the lead programmer on several games that revolutionized the technology, the experience and the role of gaming in our society,
link |
including Commander Keen, Wolfenstein 3D, Doom and Quake.
link |
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 and meta.
link |
And now he has been shifting some of his attention to the problem of artificial general intelligence.
link |
This was the longest conversation on this podcast at over five hours and still I could talk to John many, many more times.
link |
And we hope to do just that.
link |
This is the Lexington podcast to support it. Please check out our sponsors in the description.
link |
And now dear friends, here's John Carmack.
link |
What was the first program you've ever written? Do you remember?
link |
So I remember being in a radio shack going up to the TRS80 computers and learning just enough to be able to do 10 print John Carmack.
link |
And it's kind of interesting how, of course, I've, you know, Carnigan and Richie kind of standardized Hello World is the first thing that you do in every computer programming language and every computer,
link |
but not having any interaction with the cultures of Unix or any other standardized things.
link |
It was just like, well, what am I going to say? I'm going to say my name.
link |
And then you learn how to do go to 10 and have it scroll all off the screen.
link |
And that was definitely the first thing that I wound up doing on a computer.
link |
Can I ask you a programming advice?
link |
I was always told in the beginning that you're not allowed to use go to statements.
link |
That's really bad programming. Is this correct or not?
link |
Jumping around code.
link |
Can we look at the philosophy and the technical aspects of the go to statement that seems so convenient, but it's supposed to be programming.
link |
Certainly back in the day in basic programming languages, you didn't have proper loops.
link |
You didn't have four wiles and repeats.
link |
You know, that was the land of Pascal for people that kind of generally had access to it back then.
link |
So you had no choice but to use go tos.
link |
And as you made what were big programs back then, which were a thousand line basic program is a really big program.
link |
They did tend to sort of degenerate into madness.
link |
You didn't have good editors or code exploration tools.
link |
So you would wind up fixing things in one place at a little patch.
link |
And there's reasons why structured programming generally helps understanding.
link |
But go tos aren't poisonous.
link |
Sometimes they're the right thing to do.
link |
Usually it's because there's a language feature missing like nested breaks or something where it can sometimes be better to do a go to clean up or go to error rather than having multiple flags, multiple if statements littered throughout things.
link |
If you grep through all of my code right now, I don't think any of my current code bases would actually have a go to.
link |
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.
link |
Yeah, the infrastructure on top of like the closer you get to machine code, the more go tos you're going to see, the more of these like hacks you're going to see.
link |
Because the set of features available to you in low level programming languages is not is limited.
link |
So print John Carmack.
link |
When is the first time if we could talk about love that you found love with programming?
link |
You said like this, this is really something special.
link |
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.
link |
I mean, I remember looking through old encyclopedias at the black and white photos of the IBM mainframes at the real to real tape decks.
link |
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 a couple books on the shelf about computers and they would be very out of date even at that point.
link |
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.
link |
I would like cut it out with scissors and put it somewhere.
link |
It just, it felt like this magical thing to me, this idea that the computer would just do exactly what you told it to.
link |
I mean, and there's a little bit of the genie monkey's paw sort of issues there where you'd better be really, really careful with what you're telling it to do.
link |
But it wasn't going to back talk you, it wasn't going to have a different point of view.
link |
It was going to carry out what you told it to do.
link |
And if you had the right commands, you could make it do these pretty magical things.
link |
And so what kind of programs did you write at first?
link |
So beyond the print John Carmack.
link |
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 Superman comic that Radio Shack commissioned to have.
link |
It's like Superman had lost some of his super brain and kids had to use Radio Shack TRS80 computers to do calculations for it to help him kind of complete his heroics.
link |
And I'd find little things like that and then get a few basic books to be able to kind of work my way up.
link |
And again, it was so precious back then.
link |
I had a couple books that would teach me important things about it.
link |
I had one book that I could start to 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.
link |
But my goals in the early days was almost always making games of various kinds.
link |
I had 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.
link |
And it was a whole journey where if you learn normal basic, you can't do any kind of an action game.
link |
You can write an adventure game.
link |
You can write things where you say, what do you do here?
link |
I get sort of tack troll that type of thing and that can be done in the context of basic.
link |
But to do things that had moving graphics, there were only the most limited things you could possibly do.
link |
You could maybe do breakout or Pong or that sort of thing in low resolution graphics.
link |
And in fact, one of my first sort of major technical hacks that I was kind of fond of was on the Apple II computers.
link |
They had a they had a mode called low resolution graphics where of course all graphics were low resolution back then.
link |
But you know, regular low resolution graphics, it was a grid of 40 by 40 pixels normally, but they could have 16 different colors.
link |
And I wanted to make a game kind of like the the arcade game Vanguard, just a scrolling game.
link |
And I wanted to just kind of have it scroll vertically up and I could move a little ship around.
link |
You could manage to do that in basic, but there's no way you could redraw the whole screen.
link |
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,
link |
where the text screen and the low resolution graphics screen were basically the same thing.
link |
And all those computers could scroll their text screen reasonably.
link |
You could do a listing and it would scroll things up.
link |
And I figured out that I could kind of tweak just a couple of things that I barely understood to put it into a graphics mode.
link |
And I could draw graphics and then I could just do a line feed at the very bottom of the screen.
link |
And then the system would scroll it all up using an assembly language routine that I didn't know how to write back then.
link |
So that was like this first great hack that sort of had analogs later on in my career for a lot of different things.
link |
So I found out that I could draw a screen.
link |
I could do a line feed at the bottom.
link |
We would scroll it up once.
link |
I could draw a couple more lines of stuff at the bottom.
link |
And that was my first way to kind of scroll the screen, which was interesting in that that played a big part later on in the id software days as well.
link |
So do 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.
link |
Where so much of until recently, game design was limited by what you could actually get the computer to do where it's easy to say, like, OK, I want to scroll the screen.
link |
You just redraw the entire screen at a slight offset.
link |
And nowadays that works just fine.
link |
Computers are ludicrously fast.
link |
But up until a decade ago or so, there were all these things everybody wanted to do.
link |
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.
link |
So so much of kind of the first couple of decades of the programming work that I did was largely figuring out how to do something that everybody knows how they want it to happen.
link |
It just has to happen two to ten times faster than sort of the straightforward way of doing things would make it happen.
link |
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.
link |
You know, you don't have nearly the creative limitations or the incentives for optimizing on that level.
link |
And there's a lot of pros and cons to that.
link |
But I do generally, you know, I'm not going to do the angry old man shaking my fist at the clouds bit where back in my day, programmers had to do real programming.
link |
You know, it's it's amazing that you can just kind of pick an idea and go do it right now.
link |
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.
link |
Well, there's still, see, that's true.
link |
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.
link |
So we'll probably talk about this. But if you talk about building the metaverse 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 spiritually to go to the limits of what the system is capable of.
link |
And that really was why virtual reality was 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.
link |
Doom as a virtual reality experience back when just seeing anything in 3D.
link |
So you could say that we've been trying to build those virtual experiences from the very beginning.
link |
And in the modern era, virtual reality, especially on the mobile side of things, when it's standalone, you're basically using a cell phone chip to be able to produce these very immersive experiences.
link |
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 DNA accesses.
link |
But it is still definitely a different level than what a web developer or or even a PC steam game developer usually has to work at.
link |
And again, it's great. There's opportunities for people that want to operate it either into that spectrum there and still provide a lot of value to the world.
link |
Let me ask you sort of a big question about preference.
link |
What would you say is the best programming language, your favorite, but also the best you've seen throughout your career.
link |
You're considered by many to be the greatest programmer ever.
link |
I mean, it's so difficult to place that label on anyone.
link |
But if you put it on anyone, it's you.
link |
So let me ask you these kind of ridiculous questions of what's the best band of all time.
link |
But in your case, what's the best programming language?
link |
Everything has all the caveats about it.
link |
So what I use, so nowadays, I do program a reasonable amount of Python for AIML sorts of work.
link |
I'm not a native Python programmer.
link |
It's something I came to very late in my career.
link |
I understand what it's good for.
link |
But you don't dream in Python?
link |
And it has some of those things where there's some amazing stats.
link |
When you say if you just start, if you make a loop, you know, a triply nested loop and start doing operations in Python,
link |
you can be thousands to potentially a million times slower than a proper GPU tensor operation.
link |
And these are staggering numbers.
link |
You know, you can be as much slower as we've almost gotten faster in our pace of progress and all this other miraculous stuff.
link |
So your intuition is about inefficiencies within the Python sort of.
link |
It keeps hitting me upside the face where it's just gotten to the point now I understand.
link |
It's like, OK, you just can't do a loop if you care about performance in Python.
link |
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.
link |
But the other hand is it's amazingly convenient.
link |
And you just see stuff that people are able to cobble together by just import a few different things.
link |
And you can do stuff that nobody on Earth could do 10 years ago and you can do it in a little cookbook thing that you copy pasted out of a website.
link |
So that is really great.
link |
When I'm sitting down to do what I consider kind of serious programming, it's still in C++.
link |
And it's really kind of a C flavored C++ at that where I'm not big into the modern template metaprogramming sorts of things.
link |
I see a lot of train wrecks coming from some of that over abstraction.
link |
I spent a few years really going kind of deep into the kind of historical Lisp work and Haskell and some of the functional programming sides of things.
link |
And there is a lot of value there in the way you think about things.
link |
And I changed a lot of the way I write my C and C++ code based on what I learned about the value that comes out of not having this random mutable state that you kind of lose track of.
link |
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.
link |
It's the whole lifespan of the program.
link |
And that's when it's not necessarily just how fast you wrote it or how fast it operates, but it's how can it bend and adapt as situations change.
link |
And then the thing that I've really been learning in my time at Meta with the Oculus and VR work is it's also how well it hands off between a continuous kind of revolving door programmers taking over maintenance and different things and how you get people up to speed in different areas.
link |
And there's all these other different aspects of it.
link |
So C++ is a good language for handover between engineers.
link |
Probably not the best.
link |
And there's some really interesting aspects to this where in some cases languages 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 and unsafeness and buffer overruns and the things that you've got there.
link |
But there is this underappreciated aspect to the language is so simple, anyone can go and if you know C, you can generally jump in someplace and not have to learn what paradigms they're using because there just aren't that many available.
link |
I think there's some really, really well written C code.
link |
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.
link |
It's not hard for me to figure out what I need to do to make whatever change that I need to.
link |
While you can have more significant languages like it's a downside of Lisp where I don't regret the time that I spent with Lisp.
link |
I think that it did help my thinking about programming in some ways.
link |
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 Lisp 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.
link |
It's all of the things you've built on top of that.
link |
And then a language like Racket, kind of one of the more modern Lisp versions, it's essentially touted as a language for building other languages.
link |
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, OK, you can't touch this code till you educate yourself on all of these things that we've built on top of that.
link |
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.
link |
And you could see the programming language people just looking down at it.
link |
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.
link |
You don't need to restructure your brain to write good code in it.
link |
So I wish that I had more opportunity for doing some work in go.
link |
Rust is the other modern language that everybody talks about that I'm not fit past judgment on.
link |
I've done a little bit beyond Hello World.
link |
I wrote some like video decompression work in Rust just as an exercise.
link |
But that was a few years ago and I haven't really used it since.
link |
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.
link |
I would rather stay just in one language so that everybody can work across the entire thing.
link |
And we have, I get meta, we have a lot of projects that use kind of react framework.
link |
So you've got JavaScript here and then you have C++ for real work.
link |
And then you may have Java interfacing with some other part of the Android system.
link |
And those are all kind of horrible things.
link |
And that was one thing that I remember talking with Boz at Facebook about it where like, man, I wish we could have just said we're only hiring C++ programmers.
link |
And he just thought from the Facebook meta perspective, well, we just wouldn't be able to find enough with the thousands of programmers they've got there.
link |
It is not necessarily a dying breed, but you can sure find a lot more Java or JavaScript programmers.
link |
And I kind of mentioned that to Elon one time and he was kind of flabbergasted about that.
link |
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.
link |
But right now, I guess, yeah, they're using JavaScript on a bunch of the SpaceX work for the UI side of things when you go find UI programmers, they're JavaScript programmers.
link |
I wonder if that's because there's a lot of JavaScript programmers, because I do think that great programmers are rare.
link |
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.
link |
And so you have to really look at what you were speaking to, which is the fundamentals of a language.
link |
What does it encourage?
link |
How does it encourage you to think?
link |
What kind of systems does it encourage you to build?
link |
There's something about C++ that has elements of creativity, but forces you to be an adult about your programming.
link |
Well, it expects you to be an adult.
link |
It does not force you to.
link |
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 amend themselves to real world systems.
link |
Let me ask you about this other language, JavaScript.
link |
So if we, you know, aliens visit in thousands of years and humans are long gone, something tells me that most of the systems they find will be running JavaScript.
link |
I kind of think that if we're living in a simulation, it's written in JavaScript.
link |
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.
link |
Is it possible that all everything will be written in JavaScript one day?
link |
So the engineering under JavaScript is really pretty phenomenal.
link |
The systems that make JavaScript run as fast as it does right now are kind of miracles of modern engineering in many ways.
link |
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 build huge apps in something like this without type systems and so on.
link |
But I think for a lot of people, it does reasonably the necessary things.
link |
It's still a C flavored language.
link |
It's still a braces and semicolon language. It's not hard for people to be trained in JavaScript and then understand the roots of where it came from.
link |
I think garbage collection is unequivocally a good thing for most programs to be written in.
link |
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 virtues and costs of garbage collection.
link |
You will run into some people that are top notch programmers that just say, no, this is literally not a good thing.
link |
Oh, because it makes you lazy?
link |
Yes, that it makes you not think about things.
link |
And I do disagree.
link |
I think that there is so much objective data on the vulnerabilities that have happened in C and C++ programs, sometimes written by the best programmers in the world.
link |
It's like nobody is good enough to avoid ever shooting themselves in the foot with that.
link |
You write enough C code, you're going to shoot yourself in the foot.
link |
And garbage collection is a very great thing for the vast majority of programs.
link |
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.
link |
But that's not 99 plus percent of all the software in the world.
link |
So JavaScript is not terrible in those ways.
link |
And so much of programming is not the language itself, it's the infrastructure that surrounds it, all the libraries that you can get and the different ways you can deploy it, the portability that it gives you.
link |
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 web stack about everything that has to go when you do something really trivial in JavaScript
link |
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.
link |
It's very, very disquieting, just the depth of that stack and the fact that so few people can even comprehend all of the levels that are going on there.
link |
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.
link |
The world does run on JavaScript to a pretty good approximation there and it's not falling apart.
link |
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.
link |
But so much of my systems design and systems analysis goes around.
link |
You should understand what the speed of light is, like what would be the best you could possibly do here.
link |
And it sounds horrible, but in a lot of cases, you can be a thousand times off your speed of light velocity for something and it's still be okay.
link |
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.
link |
You know, make this web app into a hardcore native application that starts up in 37 milliseconds and everything responds in less than one frame latency.
link |
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, often being efficient is not really the best metric.
link |
And 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
link |
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.
link |
That's one of my, you know, I one of the directions I was considering swerving into was nuclear energy when I was kind of like, what do I want to do next?
link |
It was either going to be cost effective nuclear fission 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.
link |
And there would be ways that you could be a quarter of the efficiency or less. But if it wound up making your plant 10 times cheaper, that could be a radical innovation and something like that.
link |
So there's like some of these thoughts around like direct fission energy conversion, fission 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.
link |
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 took it far because sometimes there's discontinuities like around user reaction times.
link |
There are some points where the difference between operating in one second and 750 milliseconds, not that huge. You'll see it in web page statistics, but most of the usability stuff, not that great.
link |
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.
link |
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.
link |
And they're 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, my pride is in my work.
link |
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.
link |
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.
link |
Well, if you look at the evolution of life on Earth as a kind of programming effort, it seems like efficiency isn't the thing that's being optimized for.
link |
Like natural selection is very inefficient, but it kind of adapts and through the process of adaptations, building more and more complex systems that are more and more intelligent, the final result is kind of pretty interesting.
link |
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.
link |
And 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.
link |
And nobody knows 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.
link |
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 bytes that you had to work on this.
link |
You had all 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 it was so perfectly crafted.
link |
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.
link |
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.
link |
You have to turn it down into something that is symbolic and crafted like that.
link |
But that's definitely not the way DNA and life and biological evolution and things work.
link |
On the one hand, it's almost humbling how little programming code is in our bodies.
link |
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.
link |
You've got maybe 50 megabytes and this is not like Shannon Limit perfectly information dense conveyances here.
link |
It's like these are messy codes.
link |
They're broken up into amino acids.
link |
A lot of them don't do important things or they do things in very awkward ways.
link |
But it is this process of just accumulation on top of things and you need scale.
link |
Both you need scale for the population for that to work out.
link |
In the early days, in the 50s and 60s, the ancient era of computers where you could count when they say like when the Internet started even in the 70s, there were 18 hosts or something on it.
link |
It was this small finite number and you were still optimizing everything to be as good as you possibly could be.
link |
But now it's billions and billions of devices and everything going on.
link |
You can have this very much natural evolution going on where lots of things are tried, lots of things are blowing up.
link |
Venture capitalists lose their money when a startup invested in the wrong tech stack and things completely failed or failed the scale.
link |
But good things do come out of it and it's interesting to see the mimetic evolution of the way different things happen.
link |
Like mentioning Hello World at the beginning.
link |
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 dominance of Unix and C and early examples of things like that.
link |
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 whether it's mind space or programming techniques or anything.
link |
Like there's a site on Stack Exchange called CodeGolf where people compete to write the shortest possible program for a particular task in all the different kinds of languages.
link |
And it's really interesting to see folks kind of their masters of their craft really play with the limits of programming languages.
link |
It's really beautiful to see.
link |
And across all the different programming languages, you get to see some of these weird programming languages and mainstream ones.
link |
The difference between Python 2 and 3, you get to see the difference between C and C++ and Java and you get to see JavaScript, all of that.
link |
And it's kind of inspiring to see how much depth of possibility there is within programming languages that CodeGolf kind of tasks reveal.
link |
Most of us, if you do any kind of programming, you kind of do boring kind of very vanilla type of code.
link |
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.
link |
It's laden within those languages.
link |
So given that you are once again one of the greatest programmers ever, what do you think makes a good programmer?
link |
Maybe a good modern programmer.
link |
So I just gave a long rant slash lecture at Meta to the TPM organization.
link |
And my biggest point was everything that we're doing really should flow from user value.
link |
You know, all the good things that we're doing.
link |
It's like we're not technical people.
link |
It's like you shouldn't be taking pride just in the specific thing like CodeGolf is the sort of thing.
link |
It's a fun puzzle game, but that really should not be a major motivator for you.
link |
It's like we're solving problems for people or we're providing entertainment to people.
link |
We're doing something of value to people that's displacing something else in their life.
link |
So we want to be providing a net value over what they could be doing, but instead they're choosing to use our products.
link |
And that's where, I mean, it sounds triter corny, but I fundamentally do think that's how you make the world a better place.
link |
If you have given more value to people than it took you and your team to create, then the world's a better place.
link |
People have gone from something of lesser value, chosen to use your product and their life feels better for that.
link |
And if you've produced that economically, that's a really good thing.
link |
On the other hand, if you spent ridiculous amounts of money, you've just kind of shoveled a lot of cash into a woodchipper there
link |
and you should maybe not feel so good about what you're doing.
link |
So being proud about a specific architecture or a specific technology or a specific code sequence that you've done,
link |
it's great to get a little smile, like a tiny little dopamine hit for that.
link |
But the top level metric should be that you're building things of value.
link |
Now, you can get into the argument about what is user value, how do you actually quantify that.
link |
And there can be big arguments about that, but it's easy to be able to say,
link |
okay, this pissed off user there is not getting value from what you're doing.
link |
This user over there with the big smile on their face, the moment of delight when something happened,
link |
there's a value that's happened there.
link |
I mean, you have to at least accept that there is a concept of user value.
link |
Even if you have trouble exactly quantifying it, you can usually make relative arguments about it.
link |
Well, this was better than this.
link |
We've improved things.
link |
So being a servant to the user is your job when you're a developer.
link |
You want to be producing something that other people are going to find valuable.
link |
And if you are technically inclined, then finding the right levers to be able to pull,
link |
to be able to make a design that's going to produce the most value for the least amount of effort.
link |
There's a ratio there where it's a problem at the big tech companies, whether it's MetaGoogle,
link |
Apple, Microsoft, Amazon, companies that have almost infinite money.
link |
I mean, I know their CFO will complain that it's not infinite money,
link |
but for most developer standpoints, it really does feel like it.
link |
And it's almost counterintuitive that if you're working hard as a developer on something,
link |
there's always this thought, if only I had more resources, more people, more RAM, more megahertz,
link |
then my product will be better.
link |
And that sense that at certain points, it's certainly true that if you are really hamstrung by this,
link |
removing an obstacle will make a better product, make more value.
link |
But if you're not making your core design decisions in this fiercely competitive way
link |
where you're saying feature A or feature B, you can't just say, let's do both,
link |
because then you're not making a value judgment about them.
link |
You're just saying, well, they both seem good.
link |
I don't want to necessarily have to pick out which one is better or how much better
link |
and tell team B that, sorry, we're not going to do this because A is more important.
link |
But that notion of always having to really critically value what you're doing,
link |
your time, the resources you expend, even the opportunity cost of doing something else,
link |
that's super important.
link |
Well, let me ask you about the big debates that you're mentioning of how to measure value.
link |
Is it possible to measure it kind of numerically,
link |
or can you do the sort of Johnny Ive, the designer route of imagining
link |
sort of somebody using a thing and imagining a smile on their face,
link |
imagining the experience of love and joy that you have when you use the thing.
link |
That's from a design perspective.
link |
Or if you're building more like a lower level thing for Linux,
link |
you imagine a developer that might come across this and use it and become happy
link |
and better off because of it.
link |
So where do you land on those things?
link |
I imagine like Meta and Google will probably try to measure the thing.
link |
It's like you try to optimize engagement or something.
link |
Let's measure engagement.
link |
I admire the designer ethic of think of a future that's immeasurable
link |
and you try to make somebody in that future that's different from today happy.
link |
So I do usually favor if you can get any kind of a metric that's good by all means
link |
listen to the data, but you can go too far there where we've had problems where
link |
it's like, hey, we had a performance regression because our fancy new telemetry system
link |
is doing a bazillion file rights to kind of archive this stuff
link |
because we needed to collect information to determine if we were doing,
link |
you know, if our plans were good.
link |
So when information is available, you should never ignore it.
link |
For actual users using the thing, human beings using the thing,
link |
large number of human beings, and you get to see sort of all the large numbers.
link |
So there's zero to one problem of when you're doing something really new,
link |
you do kind of have to make a guess.
link |
But one of the points that I've been making at Meta is we have more than enough users now
link |
that anything somebody wants to try in VR, we have users that will be interested in that.
link |
You do not get to make a completely greenfield blue sky pitch and say,
link |
I'm going to do this because I think it might be interesting.
link |
I challenge everyone.
link |
There are going to be people, whether it's, you know, working in VR on your,
link |
like on your desktop replacement or communicating with people in different ways
link |
or playing the games, there are going to be probably millions of people,
link |
or at least if you pick some tiny niche that we're not in right now,
link |
there's still going to be thousands of people out there that have the headsets
link |
that would be your target market.
link |
And I tell people, pay attention to them.
link |
Don't invent fictional users.
link |
Don't make an Alice Bob Charlie that fits whatever matrix of tendencies
link |
that you want to break the market down to because it's a mistake to think about
link |
imaginary users when you've got real users that you could be working with.
link |
But on the other hand, there is value to having a kind of wholeness of vision for a product.
link |
And companies like Meta have, you know, they understand the tradeoffs
link |
where you can have a company like SpaceX or, you know, Apple and the Steve Jobs era
link |
where you have a very powerful leading personality that I, you know,
link |
that can micromanage at a very low level and can say it's like,
link |
no, that handle needs to be different or that icon needs to change the tint there.
link |
And they clearly get a lot of value out of it.
link |
They also burn through a lot of employees that have horror stories to tell about
link |
working there afterwards.
link |
My position is that you're at your best when you've got a leader
link |
that is at their limit of what they can kind of comprehend of everything below them
link |
and they can have an informed opinion about everything that's going on.
link |
And you take somebody, you've got to believe that somebody that has 30, 40 years of experience,
link |
you would hope that they've got wisdom that the just out of boot camp person
link |
contributing doesn't have and that if they're like, well, that's wrong there,
link |
you probably shouldn't do it that way or even just don't do it that way, do it another way.
link |
So there's value there, but it can't go beyond a certain level.
link |
I mean, I have Steve Jobs stories of him saying things that are just wrong
link |
right in front of me about technical things because he was not operating at that level.
link |
But when it does work and you do get that kind of passionate leader
link |
that's thinking about the entire product and just really deeply cares about
link |
not letting anything slip through the cracks, I think that's got a lot of value.
link |
But the other side of that is the people saying that, well,
link |
we want to have these independent teams that are bubbling up the ideas
link |
because it's almost anti capitalist or anti free market to say it's like,
link |
I want my great leader to go ahead and dictate all these points there
link |
where clearly free markets bring up things that you don't expect.
link |
Like in VR, we saw a bunch of things like it didn't turn out at all
link |
the way the early people thought were going to be the key applications
link |
and things that would not have been approved by the dark cabal
link |
making the decisions about what gets into the store
link |
turn out in some cases be extremely successful.
link |
So I definitely kind of wanted to be there as a point where I did make a pitch.
link |
It's like, hey, make me VR dictator and I'll go in and get shit done.
link |
And that's just, it's not in the culture at Metta.
link |
They understand the trade offs and that's just not the way,
link |
that's not the company that they want, the team that they want to do.
link |
It's fascinating because VR and we'll talk about it more.
link |
It's still unclear to me in what way VR will change the world
link |
because it does seem clear that VR will somehow fundamentally transform this world
link |
and it's unclear to me how.
link |
Let me know when you want to get into that.
link |
Stick to the you being the best programmer ever.
link |
Okay, in the early days when you didn't have adult responsibilities
link |
of leading teams and all that kind of stuff
link |
and you can focus on just being a programmer,
link |
what did the productive day in the life of John Carmack look like?
link |
How many hours of the keyboard? How much sleep?
link |
What was the source of calories that fueled the brain?
link |
What was it like? What time did you wake up?
link |
So I was able to be remarkably consistent about
link |
what was good working conditions for me for a very long time.
link |
I was never one of the programmers that would do all nighters going through
link |
work for 20 hours straight.
link |
It's like my brain generally starts turning to mush after 12 hours or so.
link |
But the hard work is really important
link |
and I would work for decades.
link |
I would work 60 hours a week.
link |
I would work a 10 hour day, 6 days a week,
link |
and try to be productive at that.
link |
Now my schedule shifted around a fair amount
link |
when I was young without any kids,
link |
any other responsibilities.
link |
I was on one of those cycling schedules
link |
where I'd kind of get in an hour later each day
link |
and roll around through the entire time
link |
and I'd wind up kind of pulling in at 2 or 3 in the afternoon sometimes
link |
and then working again past midnight or 2 in the morning.
link |
And that was when it was just me trying to make things happen.
link |
And I was usually isolated off in my office.
link |
People generally didn't bother me much at it
link |
and I could get a lot of programming work done that way.
link |
I did settle into a more normal schedule
link |
when I was taking kids to school and things like that.
link |
So kids were the forcing function that got you to wake up at the same time?
link |
It's not clear to me that there was much of a difference
link |
in the productivity with that where I kind of feel...
link |
If I just get up when I feel like it,
link |
it's usually a little later each day,
link |
but I just recently made the focusing decision
link |
to try to push my schedule back a little bit earlier
link |
to getting up at 8 in the morning
link |
and trying to shift things around.
link |
I'm often doing experiments with myself about
link |
what should I be doing to be more productive.
link |
And one of the things that I did realize was happening in recent months
link |
where I would go for a walk or a run.
link |
I cover like four miles a day
link |
and I would usually do that just as the sun's going down here in Texas now
link |
and it's still really damn hot,
link |
but I'd go out at 8.30 or something
link |
and cover the time there and then the showering.
link |
And it was putting a hold in my day
link |
where I would have still a couple of hours after that
link |
and sometimes my best hours were at night
link |
and I'd be like, I don't know what else is around.
link |
Nobody's bothering me,
link |
but that hole in the day was a problem.
link |
So just a couple of weeks ago,
link |
I made the change to go ahead and say,
link |
all right, I'm going to get up a little earlier.
link |
I'm going to do a walk or get out there first
link |
so I can have more uninterrupted time.
link |
So I'm still playing with factors like this
link |
as I kind of optimize my work efforts,
link |
but it's always been...
link |
It was 60 hours a week for a very long time.
link |
To some degree, I had a little thing in the back of my head
link |
where I would have a lot of programmers
link |
that would do these marathon sessions.
link |
And I had Dave Taylor, one of the guys that he had.
link |
He would be one of those people
link |
that would fall asleep under his desk sometimes
link |
and all the kind of classic hacker tropes about things.
link |
And a part of me was always a little bothered
link |
that that wasn't me,
link |
that I wouldn't go program 20 hours straight
link |
because I'm falling apart
link |
and not being very effective after 12 hours.
link |
I mean, yeah, 12 hour programming,
link |
that's fine when you're doing that,
link |
but not doing smart work much after.
link |
At least I'm not, but there's a range of people.
link |
I mean, that's something that a lot of people
link |
don't really get in their gut
link |
where there are people that work on four hours of sleep
link |
and are smart and can continue to do good work,
link |
but then there's a lot of people that just fall apart.
link |
So I do tell people that
link |
I always try to get eight hours of sleep.
link |
It's not this, you know,
link |
push yourself harder, get up earlier.
link |
I just do worse work where, you know,
link |
you can work 100 hours a week
link |
and people get eight hours of sleep
link |
if you just kind of prioritize things correctly.
link |
But I do believe in working hard, working a lot.
link |
There was a comment that Game Dev made
link |
that I know there's a backlash
link |
against really hard work in a lot of cases,
link |
and I get into online arguments about this all the time,
link |
but he was basically saying, yeah, 40 hours a week,
link |
that's kind of a part time job.
link |
And if you were really in it,
link |
you're doing what you think is important,
link |
what you're passionate about,
link |
what your work gets more done.
link |
And it's just really not possible to argue with that
link |
if you've been around the people
link |
that work with that level of intensity and just say,
link |
it's like, no, they should just stop.
link |
And we had, I kind of came back around to that
link |
a couple years ago where I was using the fictional example of,
link |
all right, some people say,
link |
they'll say with a straight face, they think,
link |
no, you are less productive
link |
if you work more than 40 hours a week.
link |
You're not really misinterpreting things
link |
where your marginal productivity for an hour after eight hours
link |
is less than in one of your peak hours,
link |
but you're not literally getting less done.
link |
There is a point where you start breaking things
link |
and getting worse behavior and everything out of it
link |
where you're literally going backwards,
link |
but it's not at eight or 10 or 12 hours.
link |
And the fictional example I would use was,
link |
imagine there's an asteroid coming to crash into Earth,
link |
destroy all of human life.
link |
Do you want Elon Musk or the people working at SpaceX
link |
that are building the interceptor
link |
that's going to deflect the asteroid?
link |
Do you want them to clock out at five
link |
because, damn it, they're just going to do worse work
link |
if they work another couple hours?
link |
And it seems absurd.
link |
And that's a hypothetical, though,
link |
and everyone can dismiss that,
link |
but then when coronavirus was hitting
link |
and you have all of these medical personnel
link |
that are clearly pushing themselves really, really hard,
link |
and I'd say it's like, okay, do you want all of these scientists
link |
working on treatments and vaccines
link |
and caring for all of these people?
link |
Are they really screwing everything up
link |
by working more than eight hours a day?
link |
And of course, people say I'm just an asshole
link |
to say something like that, but it's the truth.
link |
Working longer gets more done.
link |
So that's kind of the layer one,
link |
but I'd like to also say that,
link |
at least I believe, depending on the person,
link |
depending on the task,
link |
working more and harder
link |
will make you better for the next week
link |
in those peak hours.
link |
So there's something about a deep dedication to a thing
link |
that kind of gets deep in you.
link |
So the hard work isn't just about the raw hours of productivity.
link |
It's the thing it does to you
link |
in the weeks and months after, too.
link |
You're tempering yourself in some ways.
link |
And I think, you know, it's like the Girodreams of sushi.
link |
If you really dedicate yourself completely to making the sushi,
link |
like really putting in the long hours,
link |
day after day after day,
link |
you become a true craftsman of the thing you're doing.
link |
Now, there's, of course, discussions about
link |
are you sacrificing a lot of personal relationships,
link |
are you sacrificing a lot of other possible things
link |
to do with that time?
link |
But if you're talking about purely being a master
link |
or a craftsman of your art,
link |
that more hours isn't just about doing more.
link |
It's about becoming better at the thing you're doing.
link |
Yeah, and I don't gain say anybody that wants to work
link |
the minimum amount.
link |
They've got other priorities in their life.
link |
My only argument that I'm making,
link |
it's not that everybody should work hard.
link |
It's that if you want to accomplish something,
link |
if you want to be stronger and harder,
link |
is the path to getting it accomplished?
link |
Well, let me ask you about this then.
link |
The mythical work life balance.
link |
For an engineer, it seems like that's one of the professions
link |
for a programmer where working hard
link |
does lead to greater productivity in it.
link |
But it also raises the question of sort of personal relationships
link |
that kind of stop family.
link |
How are you able to find work life balance?
link |
Is there advice you can give maybe even outside yourself?
link |
Have you been able to arrive at any wisdom on this part
link |
in your years of life?
link |
I do think that there's a wide range of people
link |
where different people have different needs.
link |
It's not a one size fits all.
link |
I am certainly what works for me.
link |
I can tell enough that I'm different
link |
than a typical average person in the way things impact me.
link |
The things that I want to do, my goals are different
link |
and sort of the levers to impact things are different.
link |
I have literally never felt burnout
link |
and I know there's lots of brilliant smart people
link |
that do world leading work that get burned out
link |
and it's never hit me.
link |
I've never been at a point where I'm like,
link |
I just don't care about this.
link |
I don't want to do this anymore.
link |
I've always had the flexibility to work on lots of interesting things.
link |
I can always just turn my gaze to something else
link |
and have a great time working on that.
link |
So much of the ability to actually work hard
link |
is the ability to have multiple things to choose from
link |
and to use your time on the most appropriate thing.
link |
There are time periods where I am,
link |
it's the best time for me to read a new research paper
link |
that I need to really be thinking hard about it.
link |
Then there's a time that maybe I should just scan
link |
and organize my old notes because I'm just not on top of things.
link |
Then there's the time that, all right, let's go bang out
link |
a few hundred lines of code for something.
link |
So switching between them has been real valuable.
link |
So you always have kind of joined your heart
link |
for all the things you're doing
link |
and that is the kind of work life balance
link |
as a first sort of step.
link |
So you're always happy.
link |
Yeah, I mean, a lot of people would say
link |
that often I look like kind of a grim person
link |
with just sitting there with a neutral expression
link |
or even like knitted brows and a frown on my face
link |
as I'm staring at something.
link |
That's what happiness looks like for you.
link |
Yeah, it's kind of true.
link |
It's like, okay, I'm pushing through this.
link |
I'm making progress here.
link |
I know that doesn't work for everyone.
link |
I know it doesn't work for most people,
link |
but what I am always trying to do in those cases is
link |
I don't want to let somebody that might be a person like that
link |
be told by someone else that no, don't even try that out
link |
as an option where work life balance
link |
versus kind of your life's work
link |
where there's a small subset of the people
link |
that can be very happy being obsessive about things
link |
and obsession can often get things done
link |
that just practical, prudent, pedestrian work won't
link |
or at least won't for a very long time.
link |
There's legends of your nutritional intake
link |
in the early days.
link |
What can you say about being a programmer as a kind of athlete?
link |
So what was the nutrition that fueled it?
link |
I have never been that great on really paying attention to it
link |
where I'm good enough that I don't eat a lot.
link |
I've never been like a big, heavy guy,
link |
but it was interesting where one of the things
link |
that I can remember being an unhappy teenager
link |
not having enough money and one of the things
link |
that bothered me about not having enough money
link |
is I couldn't buy pizza whenever I wanted to.
link |
So I got rich and then I bought a whole lot of pizza.
link |
That was defining.
link |
That's what being rich felt like.
link |
There was a lot of little things.
link |
I could buy all the pizza and comic books and video games
link |
It really didn't take that much,
link |
but the pizza was one of those things.
link |
It's absolutely true that for a long time
link |
I had a pizza delivered every single day.
link |
The delivery guy knew me by name.
link |
I didn't find out until years later
link |
that apparently I was such a good customer
link |
that they just never raised the price on me.
link |
I was using this six year old price for the pizzas
link |
that they were still kind of sending my way every day.
link |
So you were doing eating once a day?
link |
It would be spread out.
link |
You have a few pieces of pizza.
link |
You have some more later on
link |
and I'd maybe have something at home.
link |
One of the nice things at Facebook Meta
link |
is they feed you quite well.
link |
You get a different, I guess now it's door dash
link |
sorts of things delivered,
link |
but they take care of making sure
link |
that everybody does get well fed.
link |
I probably had better food those six years
link |
that I was working in the Meta office there
link |
than I used to before,
link |
but it's worked out okay for me.
link |
My health has always been good.
link |
I get a pretty good amount of exercise
link |
and I don't eat to excess
link |
and I avoid a lot of other kind of not so good for you things.
link |
So I'm still doing quite well at my age.
link |
Did you have a kind of, I don't know,
link |
spiritual experience with food or coffee
link |
or any of that kind of stuff?
link |
I mean, the programming experience with music
link |
or like I listen to brown noise on a program
link |
or like creating an environment
link |
and the things you take into your body,
link |
just everything you construct
link |
can become a kind of ritual
link |
that empowers the whole process of the program.
link |
Did you have that relationship with pizza or?
link |
It would really be with Diet Coke.
link |
There still is that sense of, you know,
link |
drop the can down, crack open the can of Diet Coke.
link |
All right, now I mean business.
link |
We're getting to work here.
link |
Still to this day?
link |
Is Diet Coke a still partner?
link |
Yeah, probably eight or nine a day.
link |
Okay, what about your setup?
link |
How many screens, what kind of keyboard
link |
is there something interesting?
link |
Emax Vim or something modern?
link |
Linux, what operating system laptop
link |
or any interesting thing that brings you joy?
link |
So I kind of migrated cultures
link |
where early on through all of Game Dev,
link |
there was sort of one culture there
link |
which was really quite distinct from the more,
link |
the Silicon Valley venture, you know,
link |
culture for things.
link |
They're different groups
link |
and they have pretty different mores
link |
and the way they think about things where,
link |
and I still do think a lot of the big companies
link |
can learn things from the hardcore
link |
game development side of things
link |
where it still boggles my mind how hostile
link |
to debuggers and IDEs that so much of them,
link |
the kind of big money, get billions of dollars,
link |
Silicon Valley, venture backed funds are.
link |
Oh, that's interesting.
link |
Sorry, so you're saying like big companies
link |
at Google and Meta are hostile to?
link |
They are not big on debuggers and IDEs.
link |
So much of it is like Emacs BIM for things
link |
and we just assume that debuggers
link |
don't work most of the time for the systems
link |
and a lot of this comes from a sort of Linux bias
link |
on a lot of things where I did come up
link |
through the personal computers
link |
and then the DOS and then Windows
link |
and it was Borland Tools and then Visual Studio and.
link |
Do you appreciate the buggers?
link |
I mean, a debugger is how you get a view
link |
into a system that's too complicated to understand.
link |
I mean, anybody that thinks just read the code
link |
and think about it, that's an insane statement.
link |
You can't even read all the code on a big system.
link |
You have to do experiments on the system
link |
and doing that by adding log statements,
link |
recompiling and rerunning it
link |
is an incredibly inefficient way of doing it.
link |
I mean, yes, you can always get things done
link |
even if you're working with stone knives
link |
That is the mark of a good programmer
link |
is that given any tools,
link |
you will figure out a way to get it done.
link |
But it's amazing what you can do
link |
with sometimes much, much better tools
link |
where instead of just going through
link |
this iterative compile run debug cycle,
link |
you have the old Lisp direction of like,
link |
you've got a REPL and you're working interactively
link |
and doing amazing things there.
link |
But in many cases, a debugger as a very powerful user interface
link |
that can stop, examine all the different things
link |
in your program, set all of these different breakpoints.
link |
And of course you can do that with GDP
link |
or whatever there.
link |
But this is one of the user interface
link |
fundamental principles where when something
link |
is complicated to do,
link |
you won't use it very often.
link |
There's people that will break out GDP
link |
when they're at their wits end
link |
and they just have beat their head against a problem
link |
But for somebody that kind of grew up in Game Dev,
link |
it's like they were running into the debugger anyways
link |
before they even knew there was a problem
link |
and you would just stop and see what was happening
link |
and sometimes you could fix things
link |
even before you did one compile cycle.
link |
You could be in the debugger and you could say,
link |
well, I'm just going to change this right here.
link |
And yep, that did the job and fix it and go on.
link |
And for people that don't know,
link |
GDP is a popular Linux debugger
link |
primarily for C++.
link |
They handle most of the languages,
link |
but it's based on C
link |
as the original Unix heritage.
link |
And it's kind of like command line.
link |
It doesn't allow for clean visualizations
link |
and you're exactly right.
link |
You're using this kind of debugger
link |
usually when you're at wits end
link |
and there's a problem that you can't figure out
link |
why by just looking at the codes if defined it.
link |
That's how I guess normal programmers use it.
link |
But you're saying there should be tools
link |
that kind of visualize
link |
and help you as part of the programming process.
link |
Just a normal programming process
link |
to understand the code deeper.
link |
Yeah, when I'm working on like my C++ code,
link |
I'm always running it from the debugger.
link |
You know, just I type in the code.
link |
I run it many times.
link |
The first thing I do after writing code
link |
is set a breakpoint and step through the function.
link |
Now other people will say it's like,
link |
oh, I do that in my head.
link |
Well, your head is a faulty interpreter
link |
of all those things there.
link |
And I've written brand new code.
link |
I want to step in there and I'm going to single step
link |
through that examine lots of things
link |
and see if it's actually doing what I expected it to.
link |
It is a kind of companion, the debugger.
link |
Like you're now coding in an interactive way
link |
with another being.
link |
The debugger is a kind of dumb being,
link |
but it's a reliable being.
link |
That is an interesting question
link |
of what role does AI play in that kind of,
link |
with Codex and these kind of
link |
ability to generate code.
link |
You might start having tools
link |
that understand the code
link |
in interesting deep ways
link |
that can work with you.
link |
There's a whole spectrum there
link |
from static code analyzers
link |
and various kind of dynamic tools
link |
that can conceivably grok these programs
link |
that literally no human can understand.
link |
They're too big, too intertwined,
link |
and too interconnected,
link |
but it's not beyond the possibility
link |
It's just beyond what we can hold in our heads
link |
as kind of mutable state
link |
while we're working on things.
link |
And I'm a big proponent again
link |
of things like static analyzers
link |
and some of that stuff where
link |
you'll find some people that don't like
link |
being scolded by a program
link |
for how they've written something where
link |
it's like, oh, I know better, and sometimes you do,
link |
but that was something that
link |
I was, it was very,
link |
very valuable for me when
link |
and not too many people get an opportunity
link |
like this to have. This is almost one of those spiritual
link |
experiences as a programmer and
link |
software code bases were a couple million
link |
at one point I had used a few of the
link |
different analysis tools, but
link |
I made a point to really
link |
go through and scrub the code base
link |
using every tool that I could find
link |
and it was eye opening where we had
link |
a reputation for having some of the
link |
most robust, strongest code,
link |
where there were some great things that
link |
I remember hearing from Microsoft
link |
telling us about crashes on Xbox
link |
and we had this tiny number that they said
link |
were probably literally hardware errors
link |
and then you have other significant
link |
titles that just have millions of
link |
faults that are getting recorded all the time,
link |
so I was proud of our code on a lot
link |
of levels, but when I took this
link |
code analysis squeegee through
link |
everything, it was
link |
it was shocking how many
link |
errors there were in there, things
link |
that you can say, okay, this was
link |
a copy paste, not changing something right
link |
here, lots of things that were
link |
the most common problem
link |
was something in a printf
link |
format string that was the wrong data
link |
type that could cause crashes there
link |
and you really want the warnings for
link |
things like that and the next most common
link |
was missing a check for null that could
link |
actually happen, that could blow things up
link |
and those are obviously like top C, C++
link |
things, everybody has those problems,
link |
but the long tail of
link |
all of the different little things that could go
link |
wrong there and we had good programmers
link |
and my own code stuff that I'd be looking
link |
at, it's like, oh, I wrote that code, that's
link |
definitely wrong, we've been using this
link |
it's this, you know, this
link |
mind sitting there waiting for us to step
link |
it was humbling, it was, and
link |
I reached the conclusion that
link |
anything that can be syntactically
link |
allowed in your language
link |
if it's going to show up
link |
eventually in a large enough code base
link |
you're not going to, good intentions
link |
aren't going to keep it from happening,
link |
you need automated tools and guard
link |
rails for things and those start with
link |
static types or even
link |
type hints in the more dynamic languages
link |
but the people that
link |
rebel against that, that basically
link |
say, that slows me down
link |
doing that, there's something to that, I get
link |
that, I've written, you know, I've cobbled
link |
things together in a notebook, I'm like
link |
wow, this is great that it just happened
link |
but yeah, that's kind of sketchy but it's working
link |
fine, I don't care, it does come back to
link |
that value analysis
link |
where sometimes it's right to not care
link |
but when you do care
link |
if it's going to be something that's going to
link |
live for years and it's going to have other people
link |
working on it and it's going to be
link |
deployed to millions of people
link |
then you want to use all of these tools
link |
you want to be told, it's like no, you've
link |
screwed up here, here, and here and that does
link |
require kind of an ego check about
link |
things where you have
link |
to be open to the fact
link |
that everything that you're doing is just littered
link |
with flaws, it's not that oh, you
link |
occasionally have a bad day, it's just
link |
whatever stream of code you output
link |
there's going to be a statistical
link |
regularity of things that you just make mistakes
link |
I do think there's a whole
link |
argument about test driven design
link |
and unit testing versus kind of
link |
analysis and different things
link |
I am more in favor of the
link |
analysis and the stuff that just like you can't run
link |
your program until you fix this rather
link |
than you can run it and hopefully
link |
a unit test will catch it in some way
link |
Yeah, in my private code
link |
I have asserts everywhere
link |
just there's something
link |
pleasurable to me about sort of the
link |
dictatorial rule of like
link |
this should be true at this point
link |
that shouldn't have been made
link |
and I would assume
link |
I wouldn't be the kind of person that would make that mistake
link |
but I keep making that mistake therefore
link |
an assert really catches me
link |
really helps all the time
link |
I would say like 10 to 20% of my private code
link |
just for personal use is probably
link |
asserts. And they're active comments
link |
and it's one of those things that in theory
link |
they don't make any difference to the program
link |
and if it was all operating the way
link |
you expected it would be then
link |
they will never fire
link |
but even if you have it right
link |
and you wrote the code right initially
link |
then circumstances change
link |
the world outside your program changes
link |
and in fact that's one of the things
link |
where I'm kind of fond
link |
in a lot of cases of static array size
link |
declarations where
link |
I went through this period where it's like
link |
okay now we have general collection classes
link |
we should just make everything variable
link |
because I had this history of
link |
in the early days you get doom
link |
which had some fixed limits on it then
link |
everybody started making crazier and crazier
link |
things and they kept bumping up the different limits
link |
this many lines this many sectors
link |
and it seemed like
link |
a good idea well we should just make this completely
link |
you can go kind of go up to whatever
link |
there's cases where that's the right thing to do
link |
the other aspect of the world changing around you
link |
is it's good to be informed
link |
when the world has changed more than you thought it would
link |
and if you've got a continuously
link |
growing collection you're never going to find out
link |
you might have this quadratic
link |
slowdown on something where
link |
you thought oh I'm only ever going to have a handful
link |
of these but something changes
link |
and there's a new design style and all of a sudden
link |
you've got 10,000 of them
link |
so I kind of like in many cases
link |
some you know nice brown power of two
link |
number and setting it up in there
link |
and having an assert saying it's like hey you hit
link |
the you hit this limit you should probably
link |
think are the choices that you've made
link |
around all of this still relevant
link |
if somebody's using 10 times
link |
more than you thought they would
link |
yeah this code was originally written
link |
with this kind of world view
link |
with this kind of set of constraints
link |
thinking of the world in this way
link |
if something breaks that means
link |
you got to rethink the initial stuff
link |
and it's nice for it to
link |
is there any stuff like keyboard
link |
I'm fairly pedestrian on
link |
a lot of that where I did move
link |
to triple monitors like in the last
link |
several years ago I had been dual monitor
link |
for a very long time and
link |
and it was one of those things where
link |
probably years later than
link |
I should have I'm just like well the video cards
link |
now generally have three output ports
link |
I should just put the third monitor up there
link |
that's been a pure win I've been very happy
link |
but no I don't have fancy keyboard
link |
or mouse or anything
link |
the key things is an IDE that has
link |
has helpful tools so it's not
link |
the Emacs Vimrao and then Diet Coke
link |
yeah so I did spend
link |
one of my week long retreats
link |
where I'm like okay I'm going to make myself
link |
it was actually classic VI which I know people will say
link |
you should never have done that you should have just used Vim
link |
I gave it the good try it's like okay I'm being
link |
in kind of classic Unix developer
link |
I worked for a week on it
link |
I used Anki to like teach myself
link |
the different little key combinations
link |
for things like that and in the end it was just like
link |
alright this was kind of like
link |
my Civil War reenactment phase
link |
it's like I'm going out there doing it like they used to
link |
in the old days and it was kind of fun
link |
in that regard so many people right now
link |
as they're listening to this
link |
so again the out is that this was not modern Vim
link |
yes I was very happy to get back to
link |
my visual studio at the end
link |
yeah I'm actually I struggle with this a lot
link |
so you said Kinesis keyboard and
link |
I use Emacs primarily
link |
I can exactly as you said
link |
I can understand the code I can navigate
link |
the code there's a lot of stuff you can build
link |
within Emacs with using Lisp
link |
you can customize a lot of things for yourself
link |
introspect the code like to help you
link |
understand the code and visualize different aspects
link |
of the code you can even run debuggers
link |
and the world moves past you
link |
and the better and better ideas are constantly
link |
being built and that
link |
I need to take the same kind of
link |
treat as you're talking about but now
link |
I'm still fighting the Civil War
link |
I need to kind of move into the 21st century
link |
and it does seem like the world is
link |
or a large chunk of the world is moving
link |
towards visual studio code which is
link |
kind of interesting to me against the
link |
JavaScript ecosystem on the one hand
link |
and IDs are one of those
link |
things that you want to be infinitely
link |
fast you want them to just kind of
link |
immediately respond
link |
and like I mean heck I've got there's someone
link |
I know I'm an old school game dev guy
link |
that still uses visual studio 6
link |
and on a modern computer
link |
everything is just
link |
absolutely instant on something like that
link |
because it was made to work on a computer that's
link |
times slower so just everything happens
link |
immediately and all the
link |
modern systems just feel
link |
you know they feel so crufty when
link |
it's like oh why is this refreshing the screen
link |
and moving around and updating over here
link |
and something blinks down there and you should
link |
update this and there's
link |
you know there are things that
link |
we've lost with that incredible flexibility
link |
lots of people get tons of value from it
link |
and I am super happy that that seems
link |
to be winning over even a lot of the old
link |
Vim and Emacs people that they're kind of like
link |
hey visual studio codes maybe you know
link |
that may be the final peacekeeping solution
link |
where everybody is reasonably
link |
happy with something like that
link |
so can you explain what
link |
a.plan file is and
link |
what role that played in your life
link |
does it still continue to play a role
link |
back in the early early days
link |
of id software one of
link |
our big things that was unique with what we did
link |
next stations or kind of next step
link |
systems from I Steve Jobs
link |
out in the woods away from Apple company
link |
they were basically it was kind of interesting
link |
because I did not really have a background
link |
with the Unix system so many of the people
link |
they get immersed in that
link |
you know and that's you know that
link |
sets a lot of cultural expectations for them
link |
and I didn't have any of that
link |
my background was I was a huge Apple
link |
to fanboy I was always
link |
a little suspicious of the Mac I was
link |
not really what I what kind
link |
of I wanted to go with
link |
but when Steve Jobs left
link |
Apple and started next this
link |
computer did just seem like one of those amazing things
link |
from the future where it had
link |
all of this cool stuff in it and we were
link |
still back in those days working on
link |
DOS everything blew up you had
link |
reset buttons because your computer would just freeze
link |
if you're doing development work literally
link |
dozens of times a day your computer was just rebooting
link |
constantly and so this
link |
idea of yes any of the
link |
the Unix work stations would have given
link |
a stable development platform where
link |
you don't crash and reboot all the
link |
time but next also had
link |
this really amazing graphical
link |
interface and it was great for building
link |
Objective C as the kind of
link |
next was Unix based
link |
it's at Objective C so it has a lot of the
link |
elements that became Mac I mean
link |
the kind of reverse acquisition of Apple
link |
by next where that took over
link |
and became what what the modern Mac
link |
system and defined some of the developer
link |
the tools and the whole community
link |
and you've still got if you're programming
link |
on Apple stuff now there's still all these
link |
NS somethings which was originally
link |
Next Step Objects of different kinds of things
link |
but one of the aspects
link |
of those Unix systems
link |
was they had this notion of
link |
a dot plan file where
link |
a dot file is an invisible
link |
file usually in your
link |
home directory or something and there was a trivial
link |
server running on most Unix systems
link |
when somebody ran a trivial
link |
little command called finger you could
link |
do a finger and then somebody's
link |
address it could be anywhere on the internet
link |
if you were connected correctly
link |
then all that server would do was
link |
read the dot plan file
link |
in that user's home directory and then just
link |
spit it out to you and originally
link |
the idea was that could be
link |
whether you're on vacation what your current
link |
project was it's supposed to be like the
link |
plan of what you're doing and people would
link |
use it for you know
link |
various purposes but all it did was
link |
dump that file over
link |
to the terminal of whoever issued
link |
the finger command
link |
I started just keeping a list
link |
of what I was doing in there
link |
which would be what I was working on in the day
link |
and I would have this little
link |
syntax I kind of got to myself about
link |
here's something that I'm working on
link |
I put a star when I finish it
link |
I could have a few other little bits of punctuation
link |
and at the time it
link |
started off as being just like my to do
link |
list and it would be these
link |
trivial obscure little things like
link |
with collision detection code
link |
made fireball do something different
link |
and just little one liners that people that
link |
were following the games could kind of
link |
decipher but I did wind up
link |
much more in depth things I would have
link |
thoughts and insights and then I would
link |
eventually start having little essays I would
link |
sometimes dump into the dot plan files
link |
interspersed with the work logs of things
link |
that I was doing so in some
link |
ways it was like a super early proto
link |
blog where I was just kind
link |
of dumping out what I was working on but it
link |
was interesting enough that
link |
there were a lot of people
link |
that were interested in this
link |
so most of the people didn't have Unix workstation
link |
so there were the websites back in
link |
the day that would follow the doom and quake development
link |
basically make a little service that would go grab
link |
all the changes and then people could just get it with
link |
a web browser and there was a period
link |
where like all of the little
link |
kind of Dallas gaming diaspora
link |
of people that were at all in that
link |
orbit there were a couple dozen plan
link |
files going on which was
link |
and this was some years before
link |
blogging really became kind of a thing
link |
and it was kind of a
link |
a premonition of sort of the
link |
way things would go and there
link |
was it's all been collected
link |
it's available online in different places
link |
and it's kind of fun to go back and look through
link |
what I was thinking what
link |
I was doing in the different areas
link |
Have you had a chance to look back is there some interesting
link |
very low level specific
link |
maybe things you've never completed all that kind
link |
of stuff and high level
link |
philosophical essay type of stuff
link |
there's some good stuff on both where
link |
a lot of it was low level
link |
nitpicky details about game dev
link |
I've learned enough things where there's no project
link |
that I worked on that I couldn't go back
link |
and do a better job on now
link |
I mean you just you learn things hopefully
link |
if you're doing it right you learn things as you get older
link |
and you should be able to do a better job
link |
at all of the early things and there's
link |
Wolfenstein Doomquake that's like oh clearly
link |
I could go back and do a better job
link |
at this whether it's something in the rendering engine
link |
side or how I implemented
link |
the monster behaviors
link |
or managed resources
link |
do you see the flaws in your thinking now
link |
I mean sometimes I'll get the
link |
you know I'll look at it and say yeah I had a pretty
link |
clear view of I was doing good work
link |
there and I haven't
link |
really hit the point where
link |
there was another programmer Graham Divine
link |
who was he had worked at id and
link |
seventh guest and he made
link |
some comment one time where he said he looked back at some
link |
of his old notes he was like wow I
link |
was really smart back then
link |
that so much where I mean I look at it
link |
and I always know that yeah
link |
there's all the you know with aging you get
link |
certain changes in how you
link |
you're able to work problems but all of the
link |
problems that I've worked I
link |
I'm you know I'm sure that I could do
link |
a better job on all of them
link |
so you can still step right in if you could travel
link |
back in time and talk to that guy
link |
you would teach him a few things yeah absolutely
link |
I'm what about the high level
link |
philosophical stuff is there some insights
link |
that stand out do you remember
link |
there's things that
link |
there's understanding about
link |
you know in the industry and so on that
link |
were in a more primitive
link |
I am I definitely learned
link |
a lot more in the later years
link |
about business and organization
link |
and team structure
link |
I mean there were definitely things that I was
link |
not the best person
link |
or even a very good person about managing
link |
like how a team should
link |
internally how people should work together
link |
get out of my way and let me work on the code
link |
and do this and more and more
link |
in the larger scheme of things
link |
how but sometimes relatively
link |
unimportant some of those things are where it is
link |
this user value generation
link |
that's the the overarching
link |
importance for all of that and I
link |
I didn't necessarily have my eye on that
link |
ball correctly through a lot of my
link |
you know my earlier years
link |
and there's things that
link |
you know I could have I could have gotten more
link |
out of people handling things in different ways
link |
I am you know I could have made
link |
you know in some ways more
link |
successful products by following things
link |
in different ways there's mistakes that we
link |
made that we couldn't really have
link |
known how things would have worked out but
link |
it was interesting to see in later years companies
link |
like Activision showing that hey you really
link |
can just do the same game
link |
make it better every year and you can
link |
look at that from a negative standpoint
link |
and say it's like oh that's just being derivative
link |
and all that but if you step back again
link |
and say it's like no are the people buying it
link |
still enjoying it are they enjoying it more
link |
than what they might have bought otherwise
link |
and you can say no that's that's actually
link |
a great value creation
link |
engine to do that if you're in a position
link |
where you can I you know
link |
don't be forced into reinventing
link |
everything just because you think that you need
link |
you know lots of things about
link |
business and team stuff that could be done
link |
better but the technical work the kind
link |
of technical visionary type stuff
link |
that I laid out I still
link |
feel pretty good about there are some
link |
classic old ones about my defending
link |
of OpenGL versus D3D
link |
to be one of the more probably
link |
important momentous things there where
link |
it never it was always
link |
a rearguard action on Windows
link |
where Microsoft was just not going
link |
to let that win but when I look
link |
that fight to keep OpenGL relevant
link |
for a number of years there
link |
meant that OpenGL was there
link |
when mobile started happening
link |
and OpenGL ES was the thing that
link |
drove all of the acceleration
link |
of the mobile industry
link |
and it's really only in the last few years
link |
as Apple's moved to metal and some
link |
of the other companies have moved to Vulcan
link |
that that's moved away
link |
but really stepping back
link |
and looking at it's like yeah I sold
link |
millions of games for different things
link |
and billions of devices wound
link |
up with an appropriate
link |
capable graphics API
link |
do in no small part
link |
to me thinking that that was really important
link |
give up and use Microsoft's
link |
time really terrible API
link |
the thing about Microsoft is the APIs don't stay
link |
terrible they were terrible at the start
link |
but a few versions on
link |
they were actually quite good and there was a completely
link |
fair argument to be made that
link |
by the time DX9 was out
link |
it was probably a better programming environment
link |
than OpenGL but it was still
link |
a wonderful good thing
link |
that we had an open standard that could
link |
show up on Linux and Android
link |
iOS and eventually WebGL
link |
still to this day so
link |
that would be on my greatest hits list of things
link |
that I kind of pushed with. In terms of impact it had
link |
on billions of devices yes
link |
so let's talk about it
link |
can you tell the origin story of id software
link |
one of the greatest game developer
link |
companies ever it created
link |
Wolfstein 3D games that
link |
define my life also
link |
in many ways as a thing
link |
that made me realize what computers are capable of
link |
in terms of graphics in terms of
link |
performance it just
link |
unlocked something deep
link |
in me in understanding
link |
what these machines are all about as games can do that
link |
so Wolfstein 3D, Doom, Quake
link |
incredible engineering innovation that went into that
link |
start? So I'll caveat up
link |
front that I usually don't
link |
consider myself the historian
link |
of the software side of things
link |
kind of point people at John Romero
link |
for stories about the early days
link |
I've never been like I've commented
link |
that I'm a remarkably unsentimental person
link |
in some ways where I don't really
link |
spend a lot of time unless I'm explicitly
link |
prodded to go back and think about
link |
the early days of things and
link |
necessarily make the effort to
link |
archive everything exactly in my brain
link |
and the more that I work on machine learning
link |
and AI and the aspects of memory
link |
and how when you go back and polish certain
link |
things it's not necessarily exactly
link |
the way it happened but
link |
having said all of that from
link |
my view the way everything
link |
happened that led up to that was
link |
an adult kind of taking
link |
a few college classes deciding to drop
link |
I was hard scrabble contract
link |
programming work really struggling to
link |
kind of keep groceries and pay my rent
link |
and things and the company
link |
that I was doing the most work for was
link |
a company called Soft Disk Publishing
link |
Sounds Bizarre Now business model
link |
of monthly subscription software
link |
you know before there was an internet
link |
that people could connect to and get software
link |
a certain amount and every month they would send
link |
you a disk that had some random software
link |
on it and people that were into
link |
computers thought this was kind of cool and they had
link |
different ones for the Apple 2
link |
the 2GS the PC the Mac
link |
lots of different things here so quirky little
link |
business but I was doing a lot
link |
of contract programming for them where I'd
link |
write tiny little games and sell them
link |
$500 and one of the things
link |
that I was doing again to keep
link |
my head above water here was
link |
I decided that I could make
link |
one program and I could
link |
port it to multiple systems
link |
so I would write a game like
link |
dark designs or catacombs and
link |
I would develop it on the Apple 2
link |
the 2GS and the IBM PC
link |
was the thing that really kind
link |
of piqued the attention of the
link |
people working down there like Jay Wilbur
link |
was my primary editor and Tom Hall
link |
was a secondary editor
link |
and they kept asking me it's like hey
link |
you should come down and work for us here
link |
pushed it off a couple times because I was
link |
really enjoying my freedom of kind of being
link |
off on my own even if I was barely
link |
getting by I loved it I was
link |
doing nothing but programming all day
link |
but I did have enough
link |
close scrapes with like damn I'm just
link |
really out of money that maybe I should
link |
rather than contracting these kind of one at
link |
a time things and Jay Wilbur
link |
was great he was like fedexing me the checks
link |
when I would need them to kind
link |
of get over whatever hump I was at
link |
I finally took them up on their offer to come
link |
down to Shreveport, Louisiana
link |
I was in Kansas City at the time
link |
to through the Ozarks and everything
link |
and saw the soft disk
link |
offices went through talked to a bunch of
link |
people met the people I had been working
link |
with remotely at that time
link |
but the most important thing for me
link |
was I met two programmers
link |
there John Romero and Lane Roth
link |
that for the first time ever I had met
link |
programmers that knew more
link |
cool stuff than I did where
link |
the world was just different back then I
link |
was in Kansas City it was one of those
link |
smartest kid in the school does all the
link |
computer stuff the teachers don't have anything
link |
to teach him but all I had to learn
link |
from was these few books at the library
link |
it was not much at all
link |
and there were some aspects of programming
link |
that were kind of black magic to me
link |
like it's like oh he knows how to format
link |
a track on I am you know on a
link |
low level drive programming
link |
interface and this
link |
was I was still not at all
link |
sure I was going to take the job but I met
link |
these awesome programmers that
link |
were doing cool stuff and my Romero had
link |
worked at Origin Systems and he had done
link |
like you know so many different games
link |
that I did kind of quickly decide like
link |
yeah I'll go take the job down there
link |
settled down there moved in
link |
and started working on more little
link |
projects and the first kind
link |
of big change that happened down there
link |
was the company wanted to make a gaming
link |
focused a PC gaming focused
link |
subscription just like all their
link |
other was the same formula that they used for
link |
everything pay a monthly
link |
fee and you'll get a disc with
link |
one or two games just every month
link |
and no choice in what you get but we think
link |
it'll be fun and that was the model
link |
they were comfortable with and said all right
link |
we're going to start this gamers edge department
link |
and all of us that were
link |
interested in that like me Romero
link |
I Tom Hall was kind of
link |
helping us from from his side of things
link |
Jay would peak in and we had a few other
link |
working with us at the time and we were
link |
going to to just start making games
link |
just the same model
link |
and we dived in and it was fantastic
link |
you have to make new games
link |
every month every month
link |
retrospect looking back at it that sense
link |
that I had done all this contract programming
link |
and John Romero had done
link |
like far more of this where he had done one
link |
of his teaching himself efforts was he
link |
made a game for every letter of the alphabet
link |
that sense of like I'm just going to go make
link |
26 different games give him a different
link |
theme and you learn
link |
so much when you go through and you
link |
crank these things out like on a
link |
bi weekly monthly basis something
link |
to finish it's not like an I just
link |
an idea it's not just
link |
from from the very beginning to the very end
link |
it has to be done there's no delaying
link |
it's done and you've got deadlines
link |
rapid iteration pressure cooker
link |
environment was super important
link |
for all of us developing the skills
link |
that I you know that brought us
link |
to where we eventually went to I mean
link |
we would say like like in the history of the
link |
Beatles like it wasn't them being the Beatles
link |
it was them playing all of these other
link |
I am you know early works that that
link |
opportunity to craft all of their skills
link |
before they were famous that was
link |
very critical to their later successes
link |
and I think there's a lot of that here
link |
where we did these games that
link |
nobody remembers lots
link |
of little things that contributed
link |
to building up the skill set for the things
link |
that eventually did make us famous
link |
and just to ask you wrote the
link |
write it in a month just
link |
make money and nobody
link |
remembers that probably because he had to
link |
figure out because it's literally
link |
he he didn't have enough
link |
time to write it fast enough
link |
said to come up with hacks
link |
literally comes down to that
link |
point where pressure and limitation of
link |
resources is surprisingly
link |
important and it's
link |
counterintuitive in a lot of ways where you just
link |
think that if you've got all the time in the world
link |
and you've got all the resources in the world
link |
of course you're going to get something better
link |
but sometimes it really does work out that
link |
innovations mother necessity and you know
link |
where you can resource constraints and you
link |
have to do things when you don't have a choice
link |
it's surprising what you can do
link |
is there any good games written in that time
link |
would you say some of them are still fun to
link |
go back and play where
link |
they were they were all about kind of the more
link |
modern term is game feel about how
link |
exact feel that things it's not the grand
link |
strategy of the design but how
link |
running and jumping and shooting and those
link |
things I feel in the
link |
in the moment and some of those are still
link |
you if you sat down on them you kind of go
link |
it's a little bit different it doesn't have the same
link |
movement feel but you move over and you're
link |
like bang jump bang it's like
link |
hey that's kind of cool still
link |
so you can get lost in the rhythm of the
link |
game like that is that what you mean by feel
link |
there's something about it that pulls you in
link |
nowadays again people talk about
link |
compulsion loops and things where it's that
link |
I am that sense of exactly
link |
what you're doing what your fingers are doing on
link |
the keyboard what your eyes are seeing
link |
and they're going to be the sequences of things
link |
grab the loot shoot the monster jump over
link |
the opposite will get to the end of the level
link |
these are eternal aspects of game design
link |
in a lot of ways but
link |
there are better and worse ways to do all of
link |
them and we did so many of these
link |
games that it was I we got
link |
a lot of practice with it
link |
so one of the kind of weird things
link |
that was happening at this time is
link |
John Romero was getting some
link |
some strange fan mail
link |
and back in the days this was before email
link |
so we literally got letters sometimes
link |
and telling him it's like oh I
link |
want to talk to you about your games I want to
link |
reach out different things
link |
it turned out that these were all coming
link |
from Scott Miller at Apigee Software
link |
he was reaching out through he didn't think
link |
he could contact John directly that he would
link |
get intercepted so he was trying to get
link |
him to contact him through like
link |
back channel fan mail because he basically
link |
was saying hey I'm making all this money
link |
on shareware games
link |
I want you to make shareware games
link |
because he had seen some of the games
link |
that Romero had done
link |
and you know we looked at
link |
Scott Miller's games and we didn't think
link |
they were very good I am we're like
link |
that can't be making the kind
link |
of money that he's saying he's making 10 grand
link |
thing I am off of this game
link |
and we really thought that he was full
link |
of shit that it was a lie trying to
link |
get to get him into this
link |
but so that was kind of going on at
link |
I am you know at one level
link |
he was and it was funny the moment
link |
when Romero realized that he had some
link |
of these letters pinned up on his wall like all of
link |
his fans and then we noticed that they all had the same
link |
return address with different names on them
link |
which was a little bit of a two inch sort
link |
figure out the puzzle laid out before
link |
him yeah what happened after I kind of
link |
coincident with that was
link |
I was working on a lot of the new
link |
technologies where
link |
I was now full on the IBM PC
link |
for the first time where I was really
link |
a long hold out on Apple 2 forever
link |
and I you know I loved my Apple 2
link |
it was the computer I was wished I had when I was
link |
growing up and when I finally did have one
link |
I was I was kind of clinging on
link |
to that well past it's sort of good use
link |
by the best computer ever made you would you say
link |
make judgments like that about it but it
link |
was positioned in such a way especially
link |
in the school systems that it impacted
link |
a whole lot of American
link |
programmers at least where
link |
there was programs that the Apple 2's got
link |
into the schools and they had enough
link |
capability that lots of interesting things
link |
happened with them you know in Europe
link |
it was different you had your Amiga's and
link |
Atari's and you know I'm acorns
link |
in the UK and things that
link |
that had different things but in the United States
link |
it was probably the Apple 2 made the most
link |
of programmers of my generation
link |
but so I was really digging
link |
into the IBM and this was
link |
even more so with the total
link |
focus because I had moved to another city
link |
where I didn't know anybody that I wasn't working
link |
with I had a little apartment
link |
and then at Softisk again the
link |
things that that drew me to it I had
link |
a couple programmers that knew more than
link |
I did and they had a
link |
library they had a set of books
link |
and a set of magazines they had a couple years
link |
ago they had a set of magazines the old
link |
Dr. Dobbs Journal and all of these
link |
magazines that had information
link |
about things and so
link |
I was just in total immersion
link |
mode it was Eat, Breathe, Sleep
link |
computer programming particularly the IBM
link |
for everything that I was
link |
doing and I was digging into
link |
a lot of these low level hardware details
link |
that people weren't usually paying
link |
attention to the way the IBM
link |
which was fun for me I hadn't
link |
experienced with things at that level
link |
and back then you could get
link |
hardware documentation just down at the register
link |
levels this is where the CRTC
link |
register is this is how the
link |
color registers work and how the different things
link |
are applied and they were designed
link |
for a certain reason they were designed
link |
for an application they had
link |
an intended use in mind but
link |
I was starting to look at other
link |
ways that they could perhaps be exploited
link |
that they weren't initially intended for
link |
because you comment on like
link |
how the operating system was there
link |
what instructions said
link |
what are we talking about?
link |
So this was DOS and X86
link |
the two 86's were there and
link |
three 86's existed they were rare
link |
we had a couple for our development systems
link |
but we were still targeting
link |
it was all DOS 16 bit
link |
none of this was kind of DOS extenders
link |
and things. How different is it from the systems
link |
of today's it's kind of a precursor
link |
that's similar? Very little
link |
if you open up command.exe
link |
windows you see some of the remnants
link |
of all of that but it was a different world
link |
it was the 640k is enough
link |
world and nothing was
link |
protected it crashed all the time you had
link |
TSR's or terminate and stay
link |
resident hacks on top of things
link |
that would cause configuration problems
link |
all the hardware was manually
link |
configured in your auto exec
link |
so it was a very different world
link |
but the code is still the same similar
link |
you would still write
link |
my earliest code there was written in Pascal
link |
that was what I had learned
link |
and C++ there's Pascal
link |
so when basic assembly language
link |
some of my intermediate
link |
stuff was well you had to for performance
link |
basic was just too slow so
link |
most of the work that I was doing as a contract
link |
programmer in my teenage years
link |
was assembly language
link |
you wrote games in assembly?
link |
yeah complete games
link |
in assembly language
link |
and it's thousands and thousands of lines
link |
of three letter acronyms for the
link |
you don't earn the once again
link |
greatest programmer ever labeled
link |
without being able to write a game in assembly
link |
that's again everybody wrote there
link |
everybody serious wrote their games in assembly language
link |
it was an outlier to use
link |
Pascal a little bit where there was one
link |
famous program called wizardry
link |
it was one of the great early role playing games
link |
that was written in Pascal
link |
but it was almost nothing used
link |
Pascal there but I did learn Pascal
link |
and I remember doing all of my
link |
like to this day I sketch in data structures
link |
when I'm thinking about something
link |
I'll open up a file
link |
and I'll start writing struct definitions
link |
for how data is going to be laid out
link |
and Pascal was kind of formative to that
link |
because I remember designing my rpgs
link |
in Pascal record structures
link |
and things like that and so I had
link |
I've gotten a Pascal compiler
link |
for the Apple 2GS that I could work on
link |
in the first IBM game that I developed
link |
I did in Pascal and
link |
and that's actually kind of an interesting story
link |
again talking about the constraints and resources
link |
I had an Apple 2GS I didn't have an IBM PC
link |
I wanted to port my
link |
applications to IBM because
link |
I thought I could make more money on it
link |
so what I wound up doing is
link |
I rented a PC for a week
link |
and bought a copy of Turbo Pascal
link |
and so I had a hard
link |
one week and this was cutting into
link |
what minimal profit margin I had there
link |
but I had this computer for a week
link |
I had to get my program ported
link |
before I had to return the PC
link |
and that was kind of the first thing
link |
that I had done on the IBM PC
link |
and what led me to taking the job at Softisk
link |
how's that different from regular Pascal
link |
is it different compiler or something like that
link |
so it was a product of Borland
link |
before Microsoft kind of killed them
link |
they were the hot stuff
link |
developer tools company
link |
Borland, Turbo Pascal, Turbo C
link |
and Turbo Prolog, I mean all the different things
link |
but what they did was
link |
they took a supremely pragmatic approach
link |
of making something useful
link |
it was one of these great examples where
link |
Pascal was an academic language
link |
and you had things like the UCSDP system
link |
that Wizardry was actually
link |
written in that they did
link |
they did manage to make a game with that
link |
not a super practical system
link |
while Turbo Pascal was
link |
it was called Turbo because it was blazingly fast
link |
to compile I mean really ridiculously
link |
faster than most other compilers at the time
link |
but it also had very
link |
pragmatic access to look you can just
link |
poke at the hardware in these different ways
link |
and we have libraries that let you do things
link |
and it was a pretty good
link |
it was a perfectly good way to write games
link |
and this is one of those things where people have talked about
link |
different paths that computer
link |
development could have taken
link |
where C took over the world
link |
for reasons that came out of Unix
link |
and eventually Linux
link |
and that was not a foregone conclusion at all
link |
and people can make
link |
real reasoned rational arguments
link |
that the world might have been better
link |
if it had gone a Pascal route
link |
I'm somewhat agnostic on that
link |
where I do know from experience
link |
it was perfectly good enough to do
link |
do that and it had some fundamental improvements
link |
like it had range checked arrays
link |
as an option there which could avoid
link |
real hazards that happened in a security space
link |
they were basically operating at about the same level of abstraction
link |
it was a systems programming language
link |
but you said Pascal had more emphasis on data structures
link |
in the tree of languages
link |
did Pascal come before C
link |
they were pretty contemporaneous
link |
so Pascal's lineage went to
link |
Modula 2 and eventually Oberon
link |
which was another Nicholas word
link |
experimental language
link |
but they were all good enough at that level
link |
now some of the classic
link |
academic oriented Pascal's were just missing
link |
fundamental things like oh you can't access
link |
this core system thing because we're just using it
link |
to teach students but
link |
Turbo Pascal showed that only modest changes
link |
to it really did make it
link |
a completely capable language
link |
and it had some reasons why
link |
you could implement it as a single pass compiler
link |
so it could be way way faster
link |
although less scope for optimizations
link |
if you do it that way
link |
and it did have some range checking options
link |
it had a little bit better typing capability
link |
you'd have properly typed enums
link |
sorts of things and other stuff that C lacked
link |
clearly good enough and it wound up with
link |
a huge inertia from the UNIX
link |
ecosystem and everything that came with that
link |
garbage collection
link |
no it was not garbage collected
link |
so you could still have your use after freeze
link |
and all those other problems
link |
just getting rid of array overruns
link |
at least if you were compiled with that
link |
debugging option certainly would have avoided
link |
a lot of problems and could have a lot of
link |
benefits but so anyways that was the next
link |
thing I had to learn C because C
link |
was where it seemed like most of the
link |
so I abandoned Pascal and I started working
link |
in C I started hacking on these hardware
link |
things dealing with
link |
the graphics controllers and the EGA systems
link |
wanted to do so at that time
link |
we were sitting in our darkened office playing
link |
all the different console video games
link |
and we were figuring out what do we want to
link |
what games do we want to make for our
link |
gamers edge product there
link |
and so we had one of the first Super
link |
Nintendos sitting there and we had
link |
an older Nintendo looking at all those
link |
games and the core thing that those consoles
link |
did that you just didn't get on the PC
link |
games was this ability to have
link |
a massive scrolling world
link |
where most of the games that you would make on the
link |
earlier personal computers would be a static
link |
screen you move little things around on it
link |
and you interact like that
link |
maybe you go to additional screens as
link |
you know as you move but
link |
arcade games and consoles had this
link |
wonderful ability to just have a big
link |
world that you're slowly moving your
link |
window through and that was
link |
for those types of games that kind of action
link |
exploration adventure games that was a
link |
super super important thing
link |
and PC games just didn't do
link |
had come across was a couple different
link |
techniques for implementing that
link |
on the PC and they're not
link |
hard complicated things
link |
when I explain them now they're
link |
they're pretty straightforward but just nobody was doing
link |
you sound like Einstein describing his
link |
five papers is pretty straightforward
link |
I understand but they're
link |
nevertheless revolutions so size scrolling
link |
it's a genius invention
link |
and some of the consoles had different
link |
limitations about you could do one but not the
link |
other and there were similar things
link |
going on as advancements even in the console
link |
space where you'd have like the original
link |
just horizontal scrolling and then later
link |
Mario games added vertical aspects to
link |
it and different things that
link |
you were doing to explore
link |
kind of expand the capabilities there
link |
and so much of the early game design for
link |
decades was removing limitations
link |
letting you do things that you envisioned
link |
as a designer you wanted the player to
link |
experience but the hardware just
link |
couldn't really or you didn't know
link |
how to make it happen it felt
link |
impossible you can imagine
link |
that you want to create like this
link |
big world through which you can
link |
size scroll like through which you can
link |
you ask yourself a question how do I
link |
actually build that in a way that's
link |
like the the latency
link |
is low enough the hardware
link |
can actually deliver that
link |
in such a way that it's a company
link |
and we knew what we wanted to do because
link |
we were playing all of these console games
link |
playing all these Nintendo games and arcade games
link |
clearly there is a whole world of awesome
link |
things there that we just couldn't do on
link |
the PC at least initially
link |
because every programmer can tell
link |
it's like if you want to scroll you can just redraw
link |
the whole screen but then it turns out well
link |
you're going five frames per second
link |
that's not an interactive fun experience
link |
you want to be going 30 or 60
link |
frames per second or something
link |
and it just didn't feel like that was possible
link |
it felt like the PCs had to get
link |
five times faster for you to make
link |
a playable game there
link |
and interestingly I wound up with
link |
two completely different solutions
link |
for the scrolling problem
link |
this is a theme that runs through everything
link |
where all of these big technical advancements
link |
it turns out there's always a couple
link |
different ways of doing them and
link |
it's not like you found the one true
link |
way of doing it and we'll see this
link |
as we go into 3D games and things later
link |
but so the scrolling
link |
the first set of scrolling tricks that I got
link |
the hardware had this ability to
link |
like inside the window of memory
link |
so the EGA cards at the time
link |
had 256 kilobytes of memory
link |
awkwardly set up in this planer format
link |
you know 24 million colors
link |
you had 16 colors which is 4 bits
link |
so you had 4 bit planes
link |
64k a piece of course
link |
64k is a nice round number
link |
for 16 bit addressing
link |
so your graphics card had a 16 bit
link |
window that you could
link |
look at and you could tell it to start
link |
the video scan out anywhere inside there
link |
so there were a couple games
link |
that had taken this approach if you could make
link |
a 2x2 screen or a 1x4 screen
link |
and you could do scrolling
link |
really easily like that you could just lay it
link |
all out and just pan around there
link |
but you just couldn't make it any bigger
link |
because that's all the memory that was there
link |
the first insight to the scrolling
link |
that I had was well
link |
if we make a screen that's just
link |
one tile larger you know and we usually
link |
had tiles that were 16 pixels by 16
link |
pixels the little classic Mario
link |
block that you run into
link |
lots of art gets drawn that way
link |
and your screen is a certain number of tiles
link |
but if you had one little buffer region
link |
you could easily pan around inside that
link |
16 pixel region that could be perfectly
link |
smooth but then what happens
link |
if you get to the edge and you want to keep going
link |
the first way we did
link |
scrolling was what I called
link |
adaptive tile refresh
link |
which was really just a matter of you get
link |
to the edge and then you go back
link |
to the original point and then only
link |
change the tiles that have
link |
actually that are different between where
link |
it was in most of the games at the time
link |
if you think about sort of your
link |
classic Super Mario Brothers game
link |
you've got big fields of blue sky
link |
the same brick texture
link |
and there's a lot of commonality
link |
it's kind of like a data compression thing
link |
if you take the screen and you set it down
link |
on top of each other in general
link |
only about 10% of the tiles
link |
were actually different there
link |
so this was a way to
link |
go ahead and say well I'm going to move it back
link |
and then I'm only going to change those
link |
10, 20, whatever percent
link |
tiles there and that meant
link |
that it was essentially five times
link |
faster than if you were redrawing all of the
link |
tiles and that worked well enough
link |
for us to do a bunch of these games
link |
we had a lot of these scrolling games like
link |
Slurnax and Shadow Knights and things like
link |
that that we were cranking out at this high
link |
rate that had this scrolling effect on it
link |
and it worked well enough there were design
link |
challenges there where
link |
if you made the worst case if you made a
link |
report over the entire screen
link |
you scroll over one and every single tile
link |
changes and your frame rate is now five frames
link |
per second because it had to redraw everything
link |
so the designers had a little bit
link |
that they had to worry about they had to make
link |
these relatively plain looking levels
link |
but it was still pretty magical
link |
it was something that we hadn't seen before
link |
the first thing that we wound up doing
link |
with that was I had just gotten this
link |
working and Tom Hall
link |
was sitting there with me and
link |
we were looking over at our Super Nintendo
link |
on the side there with Super Mario
link |
3 running and we had
link |
the technology we had the
link |
tools set up there and we stayed up all night
link |
and we basically cloned
link |
the first level of Super Mario Brothers
link |
performance wise as well
link |
and so it and we had our little character
link |
running and jumping in there it wasn't
link |
it was close to pixel accurate as far as
link |
all the backgrounds and everything
link |
but the gaming was just stuff that we cobbled
link |
together from previous games that I had
link |
written I just kind of like really
link |
kick bash the whole thing together to make this demo
link |
and that was one of the rare cases
link |
when I said I don't usually do
link |
these all night programming things
link |
there's probably only two memorable ones
link |
that I can think about you know one
link |
was the all nighter to go ahead and get
link |
I am to get our dangerous Dave
link |
and copyright infringement is how we
link |
titled it because we had a game called dangerous Dave
link |
was you know running around with the shotgun shooting
link |
things I and we were
link |
just taking our most beloved game at the time
link |
there the Super Mario 3
link |
and sort of sticking Dave inside that
link |
with this new scrolling technology that
link |
was going perfectly smooth for
link |
I am you know for them
link |
and I just kind of blurrily the next morning
link |
you know kind of left and we left
link |
a disc on I you know on the
link |
desk for John Romero and Jay Wilbur
link |
to see and just said run this
link |
and we eventually made it back in
link |
later in the day and
link |
it was you know like they grabbed
link |
us and pulled us in you know pulled us
link |
into the room and that was the point where
link |
they were like we got to do something
link |
with this you know we're we're going to make
link |
a company we're going to go make our own
link |
games where this was something that
link |
we we were able to just kind of hit them
link |
with a hammer of an experience like wow
link |
this is just like so much cooler than
link |
what we thought was possible
link |
there and initially we tried
link |
to get Nintendo to to let us make
link |
Super Mario 3 on the PC
link |
that's really what we wanted to do we're like
link |
hey we can finish this it's line
link |
of sight for this will be great
link |
and we sent something to Nintendo
link |
and we heard that it did get looked at
link |
in Japan and they just
link |
weren't interested in that
link |
but that's another one of those life could have gone
link |
a very different way where we could have been
link |
like Nintendo's house PC team
link |
you know at that point
link |
and defined the direction of
link |
and Doom and Quake
link |
has been a Nintendo creation
link |
yeah so at the same time
link |
that we were just doing our first scrolling
link |
we reached out to Scott Miller at
link |
Apigee and said it's like hey we do
link |
want to make some games you know these things
link |
that you think you want those are those are nothing
link |
what do you see what we can actually do now this
link |
is going to be amazing and
link |
he just like popped right up and sent a check
link |
to us where we at that point
link |
we still thought he might be a fraud that
link |
he was just lying about all of this but he
link |
was totally correct on how much money
link |
he was making with his shareware titles
link |
his kind of real brainstorm about this
link |
where shareware was this idea
link |
that software doesn't have a fixed price
link |
if you use it you send out of the goodness
link |
of your heart some money to the creator
link |
and there were a couple utilities
link |
that did make some significant success
link |
like that but for the most part
link |
it didn't really work you know there wasn't
link |
much software in a pure shareware
link |
model that that was successful
link |
take something call it shareware
link |
split it into three pieces you always made a trilogy
link |
put the first piece out but then you buy
link |
the whole trilogy for
link |
some shareware amount which in reality
link |
it meant that the first part was a demo
link |
where you kind of like the demo went
link |
everywhere for free and you paid money to
link |
to get the whole set but
link |
it was still played as shareware and we were
link |
happy to have the first one go everywhere
link |
and it wasn't a crippled demo where the
link |
first episode of all these trilogies
link |
it was a real complete game and probably
link |
20 times as many people
link |
played that part of it thought they had a great game
link |
had found memories
link |
of it but never paid us a dime
link |
were happy with that where
link |
it was really quite successful and these
link |
early games that we didn't think very much
link |
of compared to commercial quality
link |
games but they were doing really good
link |
business some fairly crude
link |
things and people it was good
link |
business people enjoyed it and
link |
it wasn't like you were taking a crapshoot on what
link |
you were getting you just played a third of the
link |
experience and you loved it enough
link |
to hand write out a check
link |
and put it in an envelope and address it
link |
and send it out to Apogee
link |
to get the rest of them so
link |
it was a really pretty feel good
link |
business prospect there because
link |
everybody was happy
link |
you know they knew what they were getting
link |
when they send it in and they would send in
link |
mail if you're going to the trouble of addressing
link |
a letter and I am filling out
link |
an envelope you write something in it and
link |
there were just the literal bags of fan mail
link |
games so people loved them
link |
I should mention that for you
link |
the definition of wealth is being
link |
able to have pizza
link |
whenever you want for me
link |
that would play shareware games over
link |
and over the part that's free
link |
over and over and it was very
link |
deeply fulfilling experience but
link |
I dreamed of a time where
link |
I could actually afford
link |
the full experience and this is kind of this
link |
the horizon when you could
link |
find out what else is there
link |
even just playing the shareware
link |
the limitation of that
link |
limited eventually we all die
link |
in that way shareware was
link |
somehow really fulfilling
link |
to have this kind of mysterious thing
link |
beyond what's free
link |
always there it's kind of
link |
I don't know that maybe
link |
it's because a part of my childhood is playing
link |
shareware games that was a really fulfilling
link |
experience it's so interesting how that model
link |
to so many people the 20x
link |
people that played it I felt very good about
link |
that I would run into people it's like
link |
that would say oh I loved that game
link |
that you had early on Commander Keen
link |
and no they meant just the first
link |
episode that they got to see everywhere
link |
that's me I played the crap out of Commander Keen
link |
and that was all good
link |
so we were in this position where Scott Miller
link |
was just fronting us cash and saying yeah
link |
we did not properly
link |
pull the trigger and say alright
link |
we're quitting our jobs we were like
link |
we're gonna do both we're gonna keep working
link |
at soft disk working on this
link |
and then we're going to go ahead
link |
and make a new game for
link |
Apogee at the same time
link |
and this eventually did lead to some legal
link |
problems and we had we had trouble
link |
it all got worked out in the end but
link |
it was not a good call at the time
link |
there and your legal mind at the time was not
link |
you you were not thinking
link |
in terms of the illegal no I
link |
I definitely wasn't none of us were
link |
I and in hindsight
link |
yeah it's like how did we think we were going to get away
link |
with like even using our work computers
link |
to write write software for
link |
you know our our breakaway
link |
new company it was
link |
not a good plan how did Commander
link |
so the design process
link |
we would start from we had some idea of what
link |
we wanted to do we wanted to do a
link |
Mario like game it was going to be a side
link |
scroller I was going to use the technology
link |
we we had some sense
link |
of what it would have to look like because of the limitations
link |
of this adaptive tile refresh
link |
technology it had to have
link |
fields of relatively constant tiles
link |
you couldn't just paint up a background
link |
and then move that around
link |
I the early design
link |
or all the design for Commander Keen really came
link |
from Tom Hall where
link |
the main creative mind
link |
for the early in software stuff
link |
where we had an interesting division of things where
link |
all creative and design I was all
link |
programming John Romero was an interesting
link |
bridge where he was both a very good
link |
programmer and also very good designer
link |
and artist and kind of straddled
link |
between the areas but Commander
link |
Keen was very much Tom Hall's baby
link |
he came up with all the design and
link |
backstory for the different things of kind of
link |
a mad scientist little kid
link |
building a rocket ship and a zap gun
link |
and visiting alien worlds
link |
and doing all this that the
link |
background that we lay the game inside
link |
of and there's not
link |
a whole lot to any of these things you know
link |
design for us was always just what we
link |
needed to do to make the game that was
link |
going to be so much fun to play
link |
and we made our we laid out
link |
our first trilogy of games you know
link |
the shareware formula it's going to be
link |
three pieces we make Commander Keen one
link |
two and three and we just really
link |
busting on all that work and it went together
link |
really quickly it was like three months
link |
and it was something that while we were
link |
still making games every month
link |
for Gamers Edge we were sharing
link |
technology between that I'd write a bunch
link |
of code for this and we just kind of use it
link |
for both again not a particularly good
link |
idea there that had consequences for us
link |
in three months we got our first our
link |
first game out and all of a sudden it
link |
was three times as successful as
link |
the most successful thing Apogee had had
link |
before and we were making like $30,000
link |
from the Commander Keen stuff
link |
and that was again a surprise
link |
to us it was more than we thought that
link |
was going to that that was going to make
link |
and we said well we're going to certainly
link |
roll into another set of titles
link |
from this and in that three months
link |
I had come up with a much better way
link |
of doing the scrolling technology that
link |
was not the adaptive tile refresh
link |
which in some ways was even simpler
link |
so many of the great ideas of technology
link |
are things that are back at the envelope
link |
designs I make this comment
link |
about modern machine learning where
link |
all the things that are really important
link |
practically in the last decade are each
link |
of them fits on the back of an envelope
link |
there are these simple little things
link |
they're not super dense hard to
link |
understand technologies
link |
and so the the second scrolling
link |
trick was just a matter of like
link |
okay we know we've got this 64k
link |
and the question was always like well you could
link |
make a 2x2 but you can't
link |
but I finally asked well what actually
link |
happens if you just go off the
link |
edge if you take your start
link |
and you say it's like okay
link |
I can move over I'm scrolling I can move
link |
over I can move down I'm scrolling
link |
I get to what should be the bottom of the memory
link |
window it's like well what if I just
link |
keep going and I say I'm going to start
link |
at you know what happens if I start
link |
at FFFE at the very
link |
end of the 64k block
link |
and it turns out it just
link |
wraps back around to the top of the block
link |
and I'm like oh well this makes
link |
everything easy you can just scroll
link |
the screen everywhere and all you have to draw
link |
is just one new line of tiles
link |
which everything you expose it might be
link |
unaligned off various parts
link |
of the screen memory
link |
but it just works that no longer
link |
had the problem of you had to have fields
link |
of the similar colors because
link |
it doesn't matter what you're doing you could be
link |
having a completely unique world
link |
and you're just drawing the new strip
link |
that comes on but it might be
link |
like you said unaligned
link |
so it can be all over the place and it turns out
link |
it doesn't matter I would have two page flipped
link |
screens as long as they didn't overlap they moved
link |
in series through this
link |
two dimensional window of graphics
link |
and that was one of those like well
link |
this is so simple this just
link |
this just works it's faster
link |
I am there it seemed like there was no
link |
downside funny thing was
link |
I it turned out after we shipped
link |
titles with this there were
link |
what they called super VGA
link |
cards the cards that would allow higher
link |
resolutions and I and
link |
different features that the standard ones didn't
link |
and on some of those
link |
cards this was a weird
link |
compatibility cork again because nobody thought
link |
this was not what it was designed to do
link |
and some of those cards had more
link |
memory they had more than just
link |
256k in four planes they had
link |
512k or a megabyte
link |
and on some of those cards
link |
I scroll my window down
link |
and then it goes into uninitialized
link |
memory that actually exists there
link |
rather than wrapping back around at the top
link |
I was in the tough position of do I have to
link |
track every single one of these and it was a mad
link |
house back then with there were
link |
20 different video card vendors with
link |
all slightly different implementations of
link |
their non standard functionality
link |
so either I needed to natively
link |
program all of the the VGA
link |
map in that memory and keep scrolling
link |
down through all of that or I kind
link |
of punted and took the easy solution
link |
of when you finally did run to the
link |
edge of the screen I accepted
link |
a hitch and just copied the whole screen up
link |
there so on some of those
link |
those cards it was
link |
a compatibility mode in the normal ones
link |
when it all worked fine everything was just
link |
beautifully smooth but if you had one of those
link |
cards where it did not wrap the way
link |
I wanted it to you'd be
link |
scrolling around scrolling around and
link |
then eventually you'd have a little hitch where
link |
200 milliseconds or something
link |
that was not super smooth as it
link |
froze a little bit and this was the binary
link |
thing is it one of the standard
link |
screens or isn't one of the weird ones
link |
the super VGA one yeah okay
link |
and so we would default to and I think
link |
that was one of those that changed over
link |
the kind of course of deployment where
link |
early on we would have a normal mode
link |
and then you would have you would enable the compatibility
link |
flag if your screen did this crazy
link |
flickery thing when you got to a certain
link |
point in the game and then
link |
later I think it probably got enabled by default
link |
as just more and more of the cards
link |
I kind of did not do exactly
link |
the right thing and that's the two edge
link |
sword of doing unconventional
link |
things with technology where
link |
you can find something that nobody thought about
link |
doing that kind of scrolling trick when they
link |
set up those cards but
link |
the fact that nobody thought that was the primary reason
link |
when I was relying on that then
link |
I wound up being broken on some of the later
link |
cards let me take a bit
link |
ask you about the hacker
link |
ethic because you mentioned shareware
link |
it's an interesting world
link |
the world of people
link |
business and the people that
link |
build systems the engineers
link |
what is the hacker
link |
ethic you've been a man
link |
of the people and you've
link |
embodied at least the part of that
link |
ethic what does it mean
link |
what did it mean to you at the time what does it mean to
link |
you today so Steven Levy's
link |
book hackers was a really
link |
formative book for me as a teenager
link |
I mean I read it several
link |
times and there was
link |
all of the great lore of the early
link |
MIT era of hackers
link |
ending up at the end with
link |
it kind of went through the early
link |
MIT hackers and the Silicon Valley
link |
hardware hackers and then
link |
the game hackers in part 3
link |
and at that time as a teenager
link |
was kind of bitter in some ways
link |
I thought I was born too late
link |
I thought I missed the window
link |
there and I really thought I
link |
belonged in that third section of that
link |
book with the game hackers and they were talking
link |
about the Williams at Sierra
link |
and Origin Systems with Richard Garriott
link |
I really wanted to be there
link |
and I knew that was now
link |
a few years in the past it was
link |
but the early days
link |
early MIT hacker days talking
link |
a lot about this sense of
link |
the hacker ethic that there was this sense
link |
sharing information being good
link |
not keeping it to yourself and
link |
that it's not a zero sum game
link |
that you can share something
link |
with another programmer and it doesn't
link |
take it away from you
link |
you then have somebody else doing something
link |
and I also think that there's
link |
an aspect of it where it's
link |
this ability to take
link |
joy in other people's accomplishments
link |
where it's not the cutthroat bit of
link |
like I have to be first I have to be
link |
recognized as the one
link |
that did this in some way but
link |
being able to see somebody else
link |
do something and say holy shit that's amazing
link |
you know and just taking joy
link |
in the ability of something amazing
link |
that somebody else does
link |
big thing that I was able to do
link |
through in software was
link |
this ability to eventually release the source code
link |
for most of our like all of our really
link |
seminal game titles and that
link |
was a it was a stepping stone
link |
process where we were
link |
kind of surprised early on where
link |
people were able to
link |
hack the existing games and of course I had
link |
experience with that I remember hacking my copies
link |
of Ultima so I give myself you know
link |
9999 gold and raise my levels
link |
and you know break out the sector editor
link |
and so I was familiar with all of that
link |
so it was just it was with a smile
link |
when I started to see people doing that to our
link |
games I am you know making
link |
level editors for Commander Keen
link |
or hacking up Wolfenstein 3D
link |
the pitch internally
link |
that we should actually release our own
link |
tools for like what we did
link |
what we used to create the games
link |
and that was you know that was
link |
a little bit debatable about
link |
well you know will this let other will
link |
give people a leg up it's always like what's that
link |
going to mean for the competition
link |
but the really hard pitch
link |
was to actually release the full
link |
source code for the games
link |
and it was a balancing act with
link |
the other people inside the company
link |
interesting how the programmers
link |
certainly I am the people
link |
that I worked closely with they did kind of
link |
get that hacker ethic bit where
link |
you wanted to share your code you were
link |
you were proud of it you wanted other people to take it
link |
do cool things with it
link |
game industry is a little more
link |
hesitant to embrace that than
link |
like the group of people that we happen to have
link |
at id software where it was
link |
always a little interesting to me seeing how
link |
a lot of people in the game modding
link |
community were very possessive
link |
of their code they did not want to share their
link |
code they wanted it to be theirs it was their
link |
you know claim to fame and that
link |
was much more like what we tended
link |
to see with artists where you know the
link |
artists understand something about credit
link |
and I you know wanting it to be known
link |
as their work and a lot of the
link |
felt a little bit more like artists
link |
than like hacker programmers in that it was
link |
about building something that
link |
maybe felt more like art to them than
link |
the more tool based and
link |
exploration based kind of
link |
hacking culture side of things
link |
it's so interesting that this kind of
link |
fear that credit will not be
link |
sufficiently attributed to you
link |
and that's one of the things that I do
link |
bump into a lot because
link |
to go I mean it's easy for
link |
me to say because so much credit is heaped on
link |
me for the id software side of
link |
things but when people come up and
link |
they want to pick a fight and say no it's
link |
like that wasn't where first person gaming
link |
came from and you can point to
link |
you know you can point to some of like things
link |
on obscure titles that I was never aware
link |
of or like the old Play Doh systems
link |
or you know each personal computer
link |
had something that was 3D
link |
and moving around and I'm
link |
you know and I'm happy to say it's like no
link |
I mean I saw Battlezone and Star Wars
link |
in the arcades I had seen 3D graphics
link |
I had seen all these things they're
link |
standing on the shoulders of lots of other people
link |
but sometimes these examples they pull out
link |
like I didn't know that existed I mean
link |
there I had never heard of that before
link |
then that didn't contribute to
link |
what I made but there's plenty of stuff that
link |
did and you know I
link |
I think there's good cases to be made
link |
that obviously Doom and Quake
link |
and Wolfenstein were formative examples
link |
everything that came after
link |
that but I don't feel
link |
the need to go fight and say claim
link |
primacy or initial invention
link |
of anything like that but a lot of people
link |
do want to. I think when you fight
link |
for the credit in that way
link |
and it does go against the hacker ethic
link |
something fundamental about the culture, about the
link |
community that builds cool stuff
link |
I think credit ultimately
link |
sort of there's a famous
link |
wrestler and freestyle wrestling
link |
and he always preached
link |
that you should just focus
link |
on the art of the wrestling
link |
your story however they want
link |
the highest form of the art is just
link |
focusing on the art and that's something
link |
that is something about the
link |
hacker ethic is just
link |
focus on building cool stuff
link |
sharing it with other cool people
link |
and credit will get
link |
assigned correctly
link |
in the long arc of history
link |
and I generally think that's true
link |
you know like there's some things
link |
there's a graphics technique that got labeled
link |
literally named it and it turned out
link |
that I wasn't the first person to figure
link |
that out like most scientific
link |
things or mathematical things you might have
link |
like oh this other person had actually done that
link |
somewhat before and then there's
link |
things that get attributed to me like the inverse
link |
square root hack that I actually didn't
link |
do I flat out that wasn't me and it's like
link |
it's weird how the memetic power
link |
of the internet I cannot
link |
convince people of that
link |
everything just gets attributed to you now
link |
even though you've never
link |
sought that the credit of things
link |
of the fact that the humility behind
link |
that is what attracts the
link |
let's talk about a game
link |
you mean one of the greatest games ever made
link |
I know you could talk about doing quake
link |
and so on but to me Wolfenstein 3D was like
link |
that a world like this could exist so
link |
how did Wolfenstein 3D come to be
link |
in terms of the programming
link |
in terms of the design in terms of some of the
link |
memorable technical challenges
link |
actually just something you haven't mentioned
link |
how did these ideas
link |
inside your mind the adaptive
link |
the solutions to these technical challenges
link |
introspectively pull back
link |
accounts of how technology solutions
link |
and design choices on my part
link |
technically we had done two games
link |
3D games like that before
link |
where hover tank was the first one
link |
which had flat shaded walls
link |
but did have the scaled enemies inside it
link |
and then catacombs 3D
link |
which had textured walls
link |
scaled enemies and
link |
some more functionality like the
link |
disappearing walls and some other stuff
link |
but what's really interesting from a
link |
game development standpoint is
link |
those games catacombs 3D
link |
hover tank and Wolfenstein
link |
they literally used
link |
a lot of the character behavior that a 2D
link |
game that I had made earlier called catacombs
link |
it was an overhead view game kind of like gauntlet
link |
you're running around and you can open up doors
link |
pick up items basic game stuff
link |
and the thought was
link |
that this exact same
link |
game experience just
link |
presented in a different perspective
link |
it could be literally the same game
link |
just with a different view into it
link |
would have a dramatically different
link |
impact on the players
link |
a true 3D you're saying that
link |
you can kind of take it
link |
you can scale enemies meaning things that are
link |
farther away you can make them smaller
link |
so from the game was
link |
a 2D map like all of our games
link |
use the same tool for creation
link |
we use the same map editor for creating
link |
keen as Wolfenstein and
link |
hevertank and catacombs and all this stuff
link |
so the game was a 2D grid
link |
made out of blocks and you
link |
could say well these are walls these are where
link |
the enemies start then they start moving around
link |
and these early games like catacombs
link |
you played it strictly in a 2D view
link |
it was a scrolling 2D view
link |
and that was kind of using an adaptive tile refresh
link |
at the time to be able to do something
link |
like that and then
link |
the thought that these early
link |
games all it did was take the same
link |
basic enemy logic but
link |
instead of seeing it from the god's eye view
link |
on top you were inside it
link |
and turning from side to side yawing
link |
your view and moving forwards and backwards
link |
and side to side and
link |
it's a striking thing where you always talk
link |
about wanting to isolate and factor changes
link |
in values and this was one of those
link |
most pure cases there where
link |
the rest of the game changed very little
link |
it was our normal kind of change the colors
link |
on something and draw a different picture
link |
for it but it's kind of the same thing
link |
but the perspective changed in a really
link |
fundamental way and
link |
it was dramatically different
link |
I can remember the reactions
link |
where the artist Adrian
link |
that had been drawing the pictures for
link |
we had a cool big troll thing in catacombs 3D
link |
and we had these walls
link |
that you could get a key and you could make
link |
the blocks disappear and really simple stuff
link |
blocks could either be there or not there
link |
so our idea of a door was
link |
being able to make a set of blocks just disappear
link |
and I remember the reaction
link |
when he had drawn these characters and he was slowly
link |
moving around and people
link |
had no experience with 3D navigation
link |
it was all still keyboard, we didn't even have mice
link |
set up at that time
link |
but slowly moving, going up
link |
picked up a key, go to a wall
link |
the wall disappears in a little animation
link |
and there's a monster right there
link |
and he practically fell out of his chair
link |
the games were the gods eye view
link |
you were a little invested in your little guy
link |
you know, happy or sad when things
link |
happened but you just did not get that
link |
kind of startle reaction
link |
something in your face, something in the back of your brain
link |
some reptile brain thing
link |
is just going oh shit, something just happened
link |
and that was one of those
link |
early points where it's like yeah
link |
this is going to make a difference
link |
this is going to be powerful and it's going to matter
link |
were you able to imagine that
link |
in the idea stage or no
link |
so not that exact thing
link |
so again, we had cases
link |
like the arcade games battle zone
link |
and star wars that you could kind of
link |
see a 3D world and things coming at you
link |
and you get some sense of it
link |
but nothing had done the kind
link |
of worlds that we were doing and the sort of
link |
action based things, 3D
link |
really largely about the simulation
link |
thoughts and this is something
link |
that really might have
link |
trended differently if not for
link |
the id software approach in the games
link |
where there were flight simulators
link |
there were driving simulators
link |
you had like hard drive in
link |
and Microsoft flight simulator
link |
and these were doing 3D and general purpose
link |
3D in ways that were
link |
more flexible than what we were doing with our
link |
games but they were looked at as
link |
simulations, they weren't trying to
link |
necessarily be fast or responsive
link |
kind of exciting maneuvers
link |
because they were trying to simulate reality
link |
and they were taking their cues from the big systems
link |
the Evans in Sutherland and the silicon
link |
graphics that were doing things
link |
but we were taking our cues from
link |
the console and arcade games
link |
we wanted things that were
link |
sort of quarter eaters that were doing fast
link |
pace things that you could smack you around
link |
rather than just smoothly gliding you
link |
from place to place
link |
and you know a funny thing is
link |
so much that that built into us
link |
that Wolfenstein still had
link |
lives and you had like one of the biggest power ups
link |
in all these games like was an extra life
link |
because you started off with 3 lives
link |
and you lose your lives and then it's game over
link |
and there weren't save games in
link |
most of this stuff
link |
it sounds almost crazy to say this
link |
but it was an innovation in DOOM
link |
you could just play DOOM as long as you wanted
link |
you just restart at the start of the level
link |
we aren't trying to take people's quarters
link |
they've already paid for the entire game
link |
we want them to have a good time
link |
and you would have some
link |
I think that there's something to the epic journey
link |
of making it to the end having to restart
link |
all the way from the beginning after a certain number
link |
of tries but now more fun is had
link |
when you just let people kind of keep trying
link |
when they're stuck rather than having to go
link |
all the way back and learn different things
link |
so you've recommended the
link |
game engine black book Wolfenstein 3D
link |
for technical exploration of the game
link |
what are some memorable technical innovations
link |
that made this perspective
link |
shift into this world that's
link |
so immersive that scares you when a monster appears
link |
or some things you have to solve?
link |
so one of the interesting things
link |
that come back to the theme of
link |
deadlines and resource constraints
link |
the game catacombs 3D
link |
we were supposed to be shipping this for gamers edge
link |
on a monthly cadence and I had
link |
slipped I was actually
link |
late it slipped like six weeks because
link |
this was texture mapped walls
link |
doing stuff that I hadn't done before
link |
at the six week point it was
link |
still kind of glitchy and buggy
link |
there were things that I knew that
link |
if you had a wall that was like almost edge
link |
on you could slide over to it and you could
link |
see some things freak out or vanish or not
link |
work and I hated that
link |
I but I was up against
link |
the wall we had to ship the game
link |
it was still a lot of fun to play it was
link |
novel nobody had seen it it gave you that
link |
startle reflex I reaction
link |
so it was worth shipping
link |
but it had these things that I knew
link |
were kind of flaky and janky and not
link |
not what I was really proud of
link |
things that I did very differently in Wolfenstein
link |
I went catacombs used
link |
almost a conventional
link |
thing where you had segments that were
link |
one dimensional polygons basically that were
link |
clipped and back faced
link |
and done kind of like a very crude
link |
3D engine from the professionals
link |
but I wasn't getting it done
link |
right I was not doing a good
link |
enough job I didn't really have line of sight
link |
it right there's stuff that of course I look back
link |
it's like oh it's obvious how to do this do
link |
the math right do your clipping right
link |
check all of this how you handle the precision
link |
but I did not know how to do that
link |
at that time and I the first 3D
link |
engine you wrote catacombs 3D
link |
you know hover tank had been a little bit before that
link |
but that had the flat shaded walls so
link |
the texture mapping on the walls was what
link |
was bringing in some of these challenges
link |
that was that was hard for me
link |
and I couldn't solve it right at the time
link |
can you describe what flat shading is in texture mapping
link |
so in the the walls were
link |
solid color one of 16 colors
link |
I am in hover tank
link |
so that's easy it's fast you just
link |
draw the solid color for everything
link |
texture mapping is what we all see
link |
today where you have an image that is
link |
stretched and distorted onto the walls
link |
or the surfaces that you're working with
link |
you know it was a long time for me to just figure
link |
out how to do that without it
link |
distorting in the wrong ways
link |
and I did not get it all
link |
exactly right in catacombs and I
link |
so that was important enough to me
link |
that rather than continuing to bang my head
link |
on that when I wasn't positive I was
link |
going to get it I went with a completely
link |
different approach for drawing
link |
for figuring out where the walls were
link |
which was a ray casting approach
link |
which I had done in catacombs 3D
link |
I had a bunch of C code
link |
I was going to make this work right and it wasn't
link |
working right in Wolfenstein
link |
I wound up going to a very
link |
small amount of assembly code
link |
so in some ways they should be
link |
a slower way of doing it
link |
but by making it a smaller amount of work
link |
that I could more tightly optimize
link |
it worked out and Wolfenstein 3D
link |
was just absolutely rock solid
link |
you know it was you know nothing
link |
glitched in there the game just was
link |
pretty much flawless through all of that
link |
and I was super proud of that
link |
but eventually like in the later games
link |
I went back to the more span based
link |
things where I could get more total efficiency
link |
once I really did figure out
link |
how to do it so there were two
link |
sort of key technical things to Wolfenstein
link |
one was this ray casting approach
link |
which you still to this day
link |
you see people go and say let's
link |
write a ray casting engine because
link |
it's an understandable way of doing things
link |
that lets you make games very much
link |
like that so you see raycasters in
link |
javascript raycasters in python
link |
people that are basically going
link |
and re implementing that
link |
approach to taking a tiled world
link |
and casting out into it
link |
it works pretty well but it's not the fastest
link |
way of doing it. Can you describe what ray casting is?
link |
and you've got your screen which is
link |
320 pixels across at the time if you haven't
link |
sized down the window for
link |
greater speed and at every
link |
pixel there's going to be an angle
link |
you've got your position in the world
link |
and you're going to just run along that angle
link |
and keep going until you hit a block
link |
times across there it's going to throw
link |
cast array out into the world
link |
from wherever your origin is
link |
until it runs into a wall
link |
and then it can figure out exactly where on the wall
link |
it hits. The performance
link |
challenge of that is as it's going out
link |
every block it's crossing
link |
it checks is this a solid wall
link |
so that means that in
link |
like the early Wolfenstein levels you're
link |
in a small jail cell going out into a small
link |
hallway it's super efficient for
link |
that because you're only stepping across three
link |
or four blocks but then if somebody
link |
makes a room that covers our maps
link |
we're limited to 64 by 64 blocks
link |
if you made one room
link |
that was nothing but walls at the far
link |
space it would go pretty slow
link |
because it would be stepping across
link |
80 tile tests or something
link |
along the way. By the way the physics of our
link |
universe seems to be competing this very thing
link |
so this maps nicely to the
link |
actual physics of our world.
link |
Yeah you get like I follow a little bit
link |
of something like Stephen Wolfram's work on
link |
you know interconnected network
link |
information states of that and
link |
that's it's beyond what I can
link |
have an informed opinion on
link |
but it's interesting that people are
link |
considering things like that and have
link |
and have things that can back
link |
there's whole different sets of interesting stuff
link |
there. So Wolfenstein 3D
link |
had raycasting. So raycasting
link |
and then the other kind of key aspect
link |
was what I called compiled
link |
you saw this in the earlier classic
link |
arcade games like Space Harrier and stuff
link |
where you would take a picture which is
link |
normally drawn directly on the screen
link |
and then if you have the ability to make
link |
it bigger or smaller big chunky pixels
link |
or physically small drop sampled
link |
pixels that's the fundamental
link |
aspect of what our characters
link |
were doing in these 3D games you would have
link |
it's just like you might have drawn a tiny little character
link |
but now we can make them really big
link |
and make them really small move it around
link |
that was the limited kind of 3D
link |
that we had for characters to make them
link |
turn there were literally eight different views
link |
of them you didn't actually have a 3D model
link |
that would rotate you just had these cardboard
link |
cutouts but that was good enough for that
link |
startle fight reaction and
link |
it was kind of what we had to deal
link |
with there. So a straightforward
link |
approach to do that you could just write
link |
out your doubly nested loop of
link |
you've got your stretch factor
link |
and it's like you've got a point you stretch by a little
link |
bit it might be on the same pixel it might
link |
be on the next pixel might have skipped a pixel
link |
you can write that out but it's
link |
not gonna be fast enough where especially
link |
you get a character for that right in
link |
your face monster covering almost the
link |
entire screen doing that with a
link |
general purpose scaling routine
link |
would have just been much too slow it would have
link |
worked when they're small characters but then it would get
link |
slower and slower as they got closer to you
link |
until right at the time when you most care
link |
about having a fast reaction time
link |
the game would be chunking down
link |
so the fastest possible
link |
way to draw pixels
link |
at that time was to
link |
instead of saying I've got a general
link |
version that can handle any scale
link |
a program to make essentially
link |
a hundred or more separate little
link |
programs that was optimized for
link |
I will take an image and I will draw it
link |
12 pixels tall I'll take an image I'll
link |
draw it 14 pixels tall
link |
up by every two pixels even
link |
for that so you would have the most
link |
optimized code so that in
link |
the normal case where
link |
most of the world is fairly large
link |
I like the pixels are big you know
link |
we did not have a lot of memory so
link |
in most cases that meant that you
link |
would load a pixel color and then
link |
you would store it multiple times
link |
so that was faster
link |
than even copying an image
link |
in a normal conventional case because
link |
most of the time the image is expanded
link |
so instead of doing one read one
link |
write for a simple copy you might
link |
be doing one read and three or four writes
link |
as it got really big and that had
link |
the beneficial aspect of just when you
link |
needed the performance most when things are covering
link |
the screen it was giving you the most
link |
acceleration for that by the way we
link |
understand this through
link |
thinking about it or were you testing like
link |
the right speed and this again
link |
comes back to I can
link |
find the antecedents for things like this
link |
back in the Apple 2 days
link |
essentially single bits at a time
link |
and if you wanted to make your
link |
little spaceship if you wanted to make it
link |
smoothly go across the world
link |
if you just took the image and you drew it out at the next
link |
location you would move by seven pixels
link |
at a time so it would go chunk chunk chunk
link |
if you wanted to make it move smoothly
link |
you actually had to make seven versions
link |
of the ship that were pre shifted
link |
you could write a program that would shift it
link |
dynamically but on a one megahertz
link |
processor that's not going anywhere fast
link |
so if you wanted to do a smooth
link |
moving fast action game you made
link |
separate versions of each of these
link |
sprites now there were a few
link |
more tricks you could pull that if it still
link |
wasn't fast enough you could make
link |
a compiled shape where
link |
instead of this program
link |
that normally copies an image
link |
it says like get this byte from here
link |
stored here get this byte store this byte
link |
if you've got the memory space
link |
you could say I'm going to write
link |
the program that does nothing but draw
link |
this shape it's going to be like
link |
I'm going to load the immediate value
link |
25 you know which is some
link |
bit pattern and then I'm going to store
link |
that at this location
link |
rather than loading something from memory
link |
that involve indexing registers
link |
and this other slow stuff you could
link |
go ahead and say no I'm going to hard code
link |
the exact values of all of the image right
link |
into the program and this was always
link |
a horrible trade off there but you didn't have much
link |
memory and you didn't have much speed
link |
but if you had something that you wanted to go
link |
really fast you could turn it into a program
link |
you know knowing about that technique is what
link |
made me think about some of these unwinding
link |
it for the PC where people
link |
that didn't come from that background were less
link |
likely to think about that
link |
I mean there's some deep parallels
link |
probably to human cognition as well
link |
there's something about
link |
the processing of a new information that
link |
requires you to predict the possible
link |
the game or the world
link |
might unroll and you have
link |
something like compiled scalars always
link |
there so you have like
link |
optimum like you have a prediction
link |
of how the world will unroll and you have
link |
some kind of optimized
link |
for that prediction and then you can modify
link |
if the world turns out to be different
link |
you can modify in a slight way.
link |
As far as building out techniques so much of the brain
link |
is about the associative context
link |
you know there just when you learn something
link |
it's in the context of something else
link |
and you can have faint tiny little
link |
hints of things and I do think there are
link |
some deep things around
link |
like sparse distributed memories and boosting
link |
that's like if you can just be slightly above the noise
link |
floor of having some hint of something
link |
you can have things refined into
link |
pulling the memory back up so
link |
having a being a programmer and having a
link |
toolbox of like all of these things that
link |
things that I did in all of these previous
link |
lives of programming tasks that
link |
still matters to me about how I'm
link |
able to pull up some of these things like in that
link |
case it was something I did on the Apple
link |
to then being relevant for the PC
link |
and I have still cases
link |
when I would when I would work on mobile
link |
development then be like okay I did
link |
something like this back in the
link |
the doom days but now it's a different
link |
environment but I still had that tie
link |
I can bring it in and I can transform it
link |
into what the world needs right now
link |
and I do think that's actually one of the
link |
very core things with human cognition
link |
and brain like I you know brain
link |
like functioning is finding
link |
these ways about you've got your brain is
link |
kind of everything everywhere all at once
link |
you know it's it is just a set of all of this
link |
stuff that is just fetched back by these
link |
queries that go into it and they can
link |
just be slightly above the noise floor
link |
with random noise in your neurons and synapses
link |
that are affecting exactly what gets pulled
link |
up so you're saying some of these very
link |
specific solutions for different
link |
that there's a kernel of an a deep
link |
idea that's generalizable to other
link |
to other things yeah you can't
link |
predict what it's going to be but that
link |
idea of like I called out that compiled
link |
shaders in the forward that I wrote
link |
for that the game engine black book
link |
as you know this is it's
link |
kind of an endpoint of unrolling
link |
code but that's one of those things
link |
that thinking about that and having that
link |
in your mind and I'm sure there are some
link |
programmers that you know hear about that
link |
think about it a little bit it's kind of the
link |
mind blown moment it's like oh you can
link |
just turn all of that data into code
link |
and nowadays you know you have instruction
link |
cash issues and that's not necessarily the
link |
best idea but there are different
link |
it's an idea that has power
link |
and has probably relevance in some other
link |
areas maybe it's in a hardware point of
link |
view that there's a way you approach
link |
building hardware that has that same
link |
you don't even have to think about iterating
link |
everything all the way into it in one
link |
place what is the story
link |
of how you came to program doom
link |
what is some memorable technical
link |
challenges or innovations within that game
link |
so the path that we went
link |
after after Wolfenstein
link |
got out and we were on this crazy
link |
arc where keen one through three
link |
more success than we thought keen
link |
four through six even more success
link |
Wolfenstein even more success so we
link |
were on this this crazy trajectory
link |
for things so actually our first
link |
box commercial project was a commander
link |
keen game but then
link |
Wolfenstein was going to have a game
link |
Spear of Destiny which was
link |
a commercial version 60 new levels
link |
so the rest of the team took the game
link |
engine pretty much as it was
link |
and started working on that we got
link |
new monsters but it's
link |
basically reskins of the things
link |
there there's a really interesting aspect
link |
about that that I didn't appreciate until much
link |
much later about how
link |
Wolfenstein clearly did
link |
tap out its limit about
link |
what you want to play
link |
all the levels and a couple of our license
link |
things there was a hard
link |
creative wall that you did not really
link |
benefit much by continuing to beat on it
link |
like doom and other more modern
link |
games like Minecraft or something
link |
there's kind of a turing completeness level
link |
of design freedom that you get in games
link |
that Wolfenstein clearly sat on one
link |
side of you know all the creative
link |
people in the world could not go and do
link |
a masterpiece just with the technology
link |
that Wolfenstein had Wolfenstein
link |
could do Wolfenstein but you really couldn't
link |
do something crazy and different
link |
but it didn't take that much more capability
link |
to get to Wolfenstein with
link |
the freeform lines and
link |
a little bit more artistic freedom to get
link |
to the point where people still announce
link |
new doom levels today all these
link |
years after without having completely
link |
tapped out the creativity how did you
link |
put it touring complete
link |
design space design space
link |
like you know we have the kind of
link |
computational universality
link |
on a lot of things and for creativity
link |
but yeah there's things where
link |
a box can be too small
link |
but above a certain point
link |
you kind of are at the point where
link |
you really have almost
link |
unbounded creative ability there and doom
link |
was the first time you crossed
link |
that line yeah where there were
link |
thousands of doom levels created
link |
and some of them still have something new
link |
and interesting to say to the world about it
link |
can you introspect what that line
link |
was is in the design space
link |
is it something about the programming
link |
capabilities that you were able
link |
to add to the game
link |
so the graphics fidelity
link |
was a necessary part because the block
link |
limitations in Wolfenstein
link |
what we had right there
link |
the full scale blocks although
link |
Minecraft I really did show that
link |
perhaps blocks stacked
link |
in 3D and at one quarter
link |
the scale of that one eighth in volume
link |
is then sufficient to have all
link |
of that but the wall
link |
sized blocks that we had in Wolfenstein
link |
was too much of a creative limitation
link |
we licensed the technology to a few other teams
link |
too much of a dent with that
link |
it just wasn't enough creative ability
link |
but a little bit more whether
link |
it was the variable floors and ceilings
link |
and arbitrary angles in doom
link |
blocks in Minecraft
link |
is then enough to open it up to
link |
worlds and worlds of new capabilities
link |
what is binary space
link |
which is one of the technologies
link |
jump around a little bit
link |
on the story path there
link |
so while the team was working on
link |
Spirit Destiny for Wolfenstein
link |
we had met another development team
link |
Raven Software while we were in Wisconsin
link |
they had RPG background
link |
and I still kind of love that
link |
and I offered to do a game engine
link |
for them to let them do
link |
instead of the like most RPG games
link |
were kind of hand drawn they made it look
link |
kind of 3D but it was done just all with
link |
artist work rather than a real engine
link |
after Wolfenstein this was still a tile
link |
based world but I added floors and ceilings
link |
and some lighting and the ability to have
link |
some sloped floors in different areas
link |
and that was my intermediate step for a game called
link |
and it had slowed down enough
link |
it was not fast enough to do our type
link |
of action things so they had the screen
link |
cropped down a little bit so
link |
you couldn't go the full screen width
link |
like we would try to do in Wolfenstein
link |
but I learned a lot
link |
I got the floors and ceilings and lightings and it looked great
link |
they were great artists up there
link |
and it was an inspiration for us to look at
link |
some of that stuff
link |
but I had learned enough from that
link |
that I had the plan for
link |
faster ways to do the lighting
link |
and shadowing and I wanted to do this freeform
link |
geometry I wanted to break out of this tile
link |
degree world limitations
link |
so we had that was
link |
when we got our next stations and we were working
link |
with these higher powered systems
link |
an editor that let us draw kind of arbitrary
link |
line segments and I was working hard
link |
to try to make something that could
link |
render this fast enough
link |
I was pushing myself
link |
and we were at a point where
link |
we could see some things that looked amazingly cool
link |
but it wasn't really fast enough
link |
for the way I was doing it
link |
for this flexibility it was no longer
link |
I couldn't just raycast into it
link |
and I had these very complex sets of lines
link |
and simple little worlds were okay
link |
but the cool things that we wanted to do
link |
just weren't quite fast enough
link |
and I wound up taking a break
link |
at that point and I did
link |
the port I did two ports
link |
Wolfenstein to the
link |
Super Nintendo it was a
link |
crazy difficult thing to do
link |
which was an even slower processor
link |
a couple megahertz processor
link |
it had been this whole thing where we had farmed out
link |
work and it wasn't going well
link |
and I took it back over
link |
and trying to make it go fast
link |
on there where it really
link |
did not have much processing power
link |
the pixels were stretched up hugely
link |
and it was pretty ugly when you looked at it
link |
but in the end it did come out fast enough
link |
to play and still be kind of fun from that
link |
but that was where I started
link |
using BSP trees or binary
link |
space partitioning trees it was one of those things
link |
I had to make it faster
link |
there it was a stepping stone
link |
where it was reasonably easy to understand
link |
in the grid world of Wolfenstein
link |
where it was all still 90 degree angles
link |
I eased myself into
link |
it with that and it was a big success
link |
back to working on Doom
link |
I had this new tool in my toolbox
link |
it was going to be a lot harder with the arbitrary
link |
angles of Doom this was where
link |
I really started grappling with epsilon
link |
problems and just you know
link |
up until that point I hadn't really had to deal with
link |
the fact that I am
link |
so many numeric things this almost felt like a betrayal
link |
to me where people had told me that I had
link |
mathematicians up on a bit of a pedestal
link |
people think I'm a math wizard and I'm not
link |
I really everything that I did
link |
was really done with a solid
link |
high school math understanding
link |
you know algebra 2 trigonometry
link |
that was what got me all the way through Doom and Quake
link |
and all of that of just understanding
link |
basics of matrices and
link |
knowing it well enough to do something with it
link |
what's the epsilon problems you ran into
link |
so I when you wind up taking
link |
a like a sloped line
link |
you say I'm going to intersect it with another sloped
link |
then you wind up with something that's not going to be
link |
on these nice grid boundaries
link |
with the Wolfenstein tile maps
link |
all you've got is horizontal and vertical lines
link |
looking at it from above and if you cut
link |
one of them it's just obvious the other one gets cut
link |
exactly at that point
link |
but when you have angled lines you're doing
link |
a kind of a slope intercept problem
link |
and you wind up with rational numbers there
link |
where things that are not going
link |
to evenly land on an integer
link |
or even on any fixed point value that you've got
link |
so everything winds up having
link |
to snap to some fixed point value
link |
so the lines slightly change their
link |
angle you wind up if you cut something
link |
here this one's going to bend a little this way
link |
and it's not going to be completely straight
link |
and then you come down to all these questions of
link |
well this one is a
link |
point on an angled line
link |
you can't answer that in finite
link |
precision unless you're doing something
link |
with actual rational numbers
link |
and later on I did waste far too much
link |
time chasing things like that how do you
link |
do precise arithmetic with rational numbers
link |
and it always blows up eventually
link |
exponentially as you do
link |
so these kind of things are impossible with computers
link |
so they're possible
link |
again there are paths to do
link |
doing it but you can't fit them conveniently
link |
in any of the numbers you need to start using
link |
big nums and different
link |
factor trackings of different things
link |
so you have to if you have any
link |
elements of OCD and you want to do something
link |
perfectly you're screwed if you're working
link |
with floating point yeah so
link |
so you had to deal with this for the first
link |
time and there were lots of challenges
link |
there about like okay they built
link |
this cool thing and the way the BSP
link |
trees work is it basically
link |
takes the walls and it carves other
link |
walls by those walls in this clever
link |
way that you can then take
link |
all of these fragments and then you can
link |
for sure from any given point
link |
get an ordering of everything in the world
link |
and you can say this goes in front of this
link |
goes in front of this all the way back to
link |
the last thing and that's super
link |
valuable for graphics where
link |
kind of a classic graphics
link |
algorithm would be painter's algorithm
link |
you paint the furthest thing first and then the next thing
link |
and then the next thing and then it comes up
link |
and it's all perfect for you that's
link |
slow because you don't want to have to have drawn
link |
everything like that but you can also flip
link |
it around and draw the closest thing
link |
to you and then if you're clever
link |
about it you can figure out what you need
link |
to draw that's visible beyond
link |
that and that's what BSP trees allow you to
link |
do. Yeah so it's combined with
link |
a bunch of other things but it gives
link |
you that ordering it's a clever way
link |
of doing things and I remember
link |
I had learned this from one of
link |
my graphics bible at the time
link |
a book called Folien Van Damme and I can't
link |
it was a different world back there there was a small
link |
integer number of books and
link |
this book that yeah
link |
this book that was it was big fat college
link |
textbook that I had read
link |
through many times I didn't
link |
understand everything in it some of it wasn't
link |
useful to me but they had the little
link |
finite orderings of you draw a little t
link |
shaped thing and you can say you can
link |
you can make a fixed ahead of time order from
link |
this and you can generalize this with
link |
the BSP trees and I
link |
got a little bit more information about that and
link |
it was kind of fun later while I was working on
link |
Quake I got to meet Bruce Nailer
link |
who is one of the original researchers that
link |
developed those technologies
link |
for academic literature
link |
and that was kind of fun but I was very much
link |
finding a tool that can help me solve
link |
what I was doing and I was using it in this
link |
very crude way in a two dimensional fashion
link |
rather than the general 3D the epsilon
link |
problem got much worse in Quake
link |
in three dimensionals when things angle in every
link |
way but eventually I did sort
link |
out the sort out how to do it reliably
link |
on doom there were still a few
link |
edge cases in doom that were not
link |
absolutely perfect where
link |
they even got terminologies in the
link |
communities like when you got to something where it
link |
was messed up it was a hall of mirrors effect
link |
because you'd sweep by and it wouldn't draw
link |
something there and you would just wind up with
link |
the leftover remnants as you flipped
link |
between the two pages
link |
but BSP trees were important
link |
for it but it's again worth noting
link |
doom our major competition
link |
came from I'm Ken Silverman
link |
his build engine which was used for Duke
link |
Nukem 3D and some of the other games for
link |
3D realms and he used a completely
link |
different technology nothing to do with
link |
trees so there's not just
link |
a one true way of doing things
link |
I'm there were critical things
link |
about to make any of those games
link |
fast you had to you had to separate
link |
your drawing into you drew vertical lines
link |
and you drew horizontal lines just
link |
kind of changing exactly what you would
link |
draw with them that was critical for
link |
the technologies at that time
link |
and like all the games that were
link |
kind of like that wound up doing something
link |
similar but there were still a bunch of other
link |
decisions that could be made
link |
and we made good enough decisions
link |
on everything on doom
link |
we brought in multiplayer
link |
significantly and it was our first game
link |
that was designed to be modified
link |
by the user community where we had this
link |
whole set up of our wad files
link |
and pwads and things that people could
link |
build with tools that we released to them
link |
and they eventually rewrote to be better
link |
than what we released but they could build
link |
things and you could add it to your game
link |
without destructively modifying it which
link |
is what you had to do in all the early games
link |
the data files are
link |
the executable before while doom
link |
was set up in this flexible way so
link |
that you could just say run the normal
link |
game with this added on on top and it
link |
would overlay just the things
link |
that you wanted to there
link |
would you say that doom was kind of the
link |
first true 3d game
link |
that you created so no it's still
link |
doom would usually be called a 2
link |
and a half d game where it had
link |
three dimensional points on it and this is
link |
another one of these kind of pedantic things
link |
that I love to argue about about what was
link |
the first 3d game I still
link |
like every month probably I hear from
link |
somebody about well was doom really
link |
a 3d game or something
link |
I give the point where
link |
characters had three coordinates
link |
so you had like an x y and z the
link |
cacodamon could be coming in very high
link |
and come down towards you
link |
the walls had three coordinates
link |
on them so on some sense
link |
it's a 3d game engine
link |
not a fully general 3d game
link |
engine you could not
link |
build a pyramid in doom because
link |
you couldn't make a sloped wall
link |
which was slightly different where in
link |
that previous shadow caster game I couldn't
link |
have vertexes and have a sloped floor there
link |
but the changes that I made for
link |
doom to get higher speed and
link |
a different set of flexibility traded away
link |
that ability but you literally couldn't make
link |
that you could not
link |
make different heights
link |
of passages but you could not make a bridge
link |
over another area you could not
link |
go over and above it so it still had
link |
some 2d limitations to it
link |
that's more about the building versus the actual
link |
experience because the experiences
link |
it felt like things would come at you but again
link |
you couldn't look up either
link |
you could only pitch
link |
it was 4 degrees of freedom rather than
link |
6 degrees of freedom you did not
link |
have the ability to tilt your head this way
link |
or pitch up and down so that takes us
link |
what was some fascinating
link |
technical challenges and there were a lot
link |
or not challenges but innovations
link |
that you've come up with so quake was
link |
kind of the first thing where
link |
I did have to kind of come face
link |
to face with my limitations
link |
where it was the first thing where
link |
I really did kind of give
link |
it my all and still come up
link |
you know come up a little bit short in terms
link |
of what and when I wanted to
link |
to get it done and the company
link |
brand had some serious stresses
link |
through the whole project
link |
bit off a lot so the things that we set out
link |
to do was it was going to be
link |
really a true 3D engine where
link |
it could do 6 degree of freedom
link |
you could have all the
link |
viewpoints you could model anything
link |
a really remarkable new lighting
link |
model with the surface caching
link |
and things that was one of those where it was starting
link |
to do some things that they weren't doing
link |
even on the very high end systems
link |
and it was going to be
link |
completely programmable
link |
in the modding standpoint where
link |
the thing that you couldn't do and do
link |
you could replace almost all of the media
link |
but you couldn't really change the game
link |
there were still some people
link |
that were doing the hex setting of the executable
link |
the dehacked things where you could change
link |
a few things about rules and people made
link |
some really capture the flag type things
link |
by hacking the executable but
link |
it wasn't really set out to do that
link |
quake was going to have its own
link |
language that the game was going to be implemented
link |
and that would be able to be overwritten
link |
just like any of the media
link |
code was going to be data for that
link |
and you would be able to have expansion
link |
packs that changed fundamental things
link |
and mods and so on
link |
and the multiplayer
link |
was going to be playable over the internet
link |
it was going to support a client
link |
server rather than peer to peer
link |
so we had the possibility of supporting
link |
larger numbers of players in disparate locations
link |
with this full flexibility
link |
of the programming overrides
link |
with full six degree of freedom
link |
modeling and viewing
link |
and with this fancy new light map
link |
kind of surface caching
link |
side it was a lot and this was
link |
one of those things that if I could
link |
tell younger me to do something differently
link |
it would have been to split those innovations
link |
up into two phases
link |
in two separate games. It will be phase one
link |
and phase two. So it probably would have been
link |
taking the doom rendering engine
link |
the TCP IP client server
link |
focusing on the multiplayer
link |
or would have been Doom C programming language there
link |
so I would have split that into
link |
programming language and networking
link |
with the same doom engine
link |
rather than forcing everybody to go towards
link |
the Quake engine which really meant
link |
getting a Pentium. While it ran on a 486
link |
it was not a great experience there
link |
we could have made more people happier
link |
and gotten two games done
link |
So speaking of people happier
link |
mutual friend Joe Rogan
link |
it seems like has the most
link |
important moment of his life
link |
has centered around Quake
link |
so it was a definitive
link |
so would he agree with
link |
your thinking that
link |
so he is a person who loves Quake
link |
and played Quake a lot
link |
would he agree that you should have
link |
done the doom engine
link |
and focus on the multiplayer for phase 1
link |
in your looking back
link |
is the 3D world that Quake created
link |
fundamental to the
link |
enriching experience. I would say that
link |
what would have happened is
link |
you would have had a
link |
doom looking but Quake feeling
link |
8 months earlier and then maybe
link |
6 months after Quake actually
link |
shipped then there would have been the full
link |
running on a Pentium I am
link |
6 degree of freedom, graphics engine type
link |
things there so it's not that it wouldn't
link |
it would have been something amazingly cool
link |
earlier and then something even cooler
link |
somewhat later where
link |
I would much rather have gone and done
link |
two 1 year development efforts
link |
I've cycled them through
link |
I've been a little more pragmatic about that
link |
rather than killing us
link |
ourselves on the whole Quake development
link |
but I would say it's obviously
link |
things worked out well in the end
link |
but looking back and saying how would I
link |
optimize and do things differently
link |
that did seem to be a clear case where
link |
going ahead and we had enormous momentum
link |
on doom you know we did doom too
link |
as the kind of commercial boxed version
link |
after our shareware success
link |
with the original but we could have just
link |
made another doom game
link |
adding those new features
link |
in it would have been huge we would have
link |
learned all the same lessons but faster
link |
and it would have given
link |
6 degree of freedom and Pentium
link |
class systems a little bit more time
link |
to get mainstream because we did
link |
cut out a lot of people with the hardware
link |
requirements for Quake
link |
was there any dark moments for you personally
link |
psychologically in having
link |
having such harsh deadlines
link |
and having this also made
link |
difficult technical challenges
link |
so I've never really
link |
really dark black places I mean
link |
I can't necessarily put myself in
link |
anyone else's shoes but I understand
link |
have you have significant
link |
challenges with kind of their
link |
mental health and well being and I've been
link |
I've been super stressed
link |
I've been you know unhappy as a teenager
link |
in various ways but
link |
I've never I've never really
link |
gone to a very dark
link |
place I just seem to be
link |
immune to what really
link |
wrecks people I mean I've had plenty of time
link |
when I'm very unhappy and miserable about
link |
something but it's never
link |
hit me like you know I believe
link |
it winds up hitting some other people
link |
I've borne up well under whatever
link |
you know have kind of fallen on me and I've
link |
always coped best on that
link |
when all I need to do is
link |
usually just kind of bear down on my work
link |
I pull myself out of
link |
whatever hole I might be slipping into
link |
by actually making progress
link |
I mean maybe if I was in a
link |
position where I was never able to make
link |
that progress I could have slid down further
link |
but I've always been in a
link |
place where okay a little bit
link |
more work maybe I'm in a tough spot here
link |
if I just keep pushing eventually
link |
I break through and I make progress I feel
link |
good about what I'm doing
link |
and that's been enough for me so
link |
Have you seen in the distance
link |
you know ideas of depression
link |
or contemplating suicide have you seen
link |
So it was interesting when I was a teenager
link |
probably on some level a troubled
link |
youth I was unhappy most of my teenage
link |
wanted to be on my own doing
link |
programming all the time as soon as I
link |
was 18, 19 even though
link |
I was poor I was doing exactly what I wanted
link |
and I was very happy but high
link |
school was not a great time for me
link |
a conversation with like the school counselor
link |
and they're kind of running their script it's like
link |
okay it's kind of a weird kid here let's
link |
carefully probe around it's like
link |
you know do you ever think about ending
link |
it all? I'm like no of course
link |
not never not at all
link |
this is temporary things are going to be better
link |
and that's always been kind of the case
link |
for me and obviously
link |
that's not that way for everyone and other people
link |
do react differently and
link |
what was your escape
link |
from the troubled youth
link |
how did you escape from
link |
a world that's full of cruelty and suffering
link |
and that's absurd? Yeah I mean I was
link |
not you know I was not victim of cruelty
link |
and suffering it's like I was an unhappy
link |
somewhat petulant youth and you know in my
link |
point where I you know I'm not
link |
putting myself up with anybody else's
link |
suffering but I was unhappy
link |
the things that I did that
link |
very much characterized my childhood
link |
books, comic books, dungeons and dragons,
link |
arcade games, video games
link |
like some of my fondest
link |
childhood memories are the convenience stores
link |
the 711s and quick trips because
link |
they had a spinner rack of comic books
link |
and they had a little side room with
link |
two or three video games, arcade games
link |
in it and that was
link |
that was very much my happy place you know if I
link |
could I get my comic books and
link |
if I could go to a library and you know
link |
go through those little 0 0
link |
0 section where computer books were supposed
link |
to be and there are a few sad little books there
link |
but still just being able to sit down
link |
and go through that and I read
link |
you know I read a ridiculous number
link |
of books both fiction and nonfiction
link |
my rebelling in high school was
link |
just sitting there with my nose in a book ignoring
link |
the class and through lots of it and
link |
teachers had a range of reactions
link |
accepting of it than others
link |
I'm with you on that so let
link |
us return to quake for a bit with the technical
link |
everything together
link |
from the networking
link |
what are some things you remember
link |
innovations you had to come up with in order
link |
to make it all happen
link |
yeah so there were a bunch of things on quake
link |
where on the one hand the idea
link |
that I built my own programming language
link |
to implement the game in
link |
looking back and I try to tell people
link |
it's like every every high level
link |
programmer sometime in their career goes through
link |
and they invent their own language it just seems to be a thing
link |
that's pretty broadly done people
link |
they're like I'm gonna go write a computer programming language
link |
you know I don't regret having done it
link |
but after that I switched
link |
from quake C my quirky little
link |
pseudo object orient or
link |
entity oriented language there
link |
quake 2 went back to using DLLs
link |
with C and then quake 3
link |
I implemented my own C interpreter or compiler
link |
which was a much smarter thing to do
link |
that I should have done originally for quake
link |
but building my own language was
link |
an experience I learned a lot from that
link |
and then there was a generation
link |
of game programmers that learned
link |
programming with quake C which I feel kind
link |
of bad about because
link |
we give javascript a lot of crap but
link |
quake C was nothing to
link |
write home about there
link |
but it allowed people to do
link |
magical things you get into programming not
link |
because you love the
link |
BNF syntax of a language
link |
it's because the language lets you do
link |
something that you cared about and here's
link |
very much you could do something
link |
in a whole beautiful three dimensional world
link |
and the idea and the fact that the code
link |
for the game was out there you could say
link |
I like the shotgun but I want
link |
it to be more badass you go in there and say
link |
okay now it does 200 points damage
link |
and then you go around with a big grin
link |
on your face blowing up monsters all over
link |
the game so yeah it's
link |
I you know it is not
link |
what I would do today going back with that
link |
language but that was a big part of it
link |
learning about the networking stuff
link |
interesting where I learned these things by
link |
reading books so I would get a book on networking
link |
read all about and learn okay packets they can
link |
lost or duplicated these are all
link |
the things that can theoretically happen to packets
link |
so I wind up spending all this time
link |
thinking about how do we deal about all that
link |
and it turns out of course in the real world
link |
those are things that yes theoretically can
link |
happen with multiple routes but they really
link |
aren't things that you're 99.999%
link |
so there was learning experiences about
link |
lots of that like why
link |
when TCP is appropriate
link |
versus UDP and and how
link |
if you do things in UDP you wind up reinventing
link |
TCP badly in almost all cases
link |
so you know there's
link |
there's good arguments for using both
link |
for different game technology
link |
different parts of the game process transitioning
link |
from level to level and all but the
link |
the graphics were the showcase
link |
of what what quake
link |
was all about it was this graphics technology
link |
that nobody had seen there
link |
and it was a while before
link |
you know there were competitive things out there
link |
and it went a long
link |
time internally really not working
link |
where we were even building
link |
levels where the game
link |
just was not at all
link |
shippable with large fractions of the world
link |
like disappearing not being there
link |
slow in various parts of it and it
link |
was this act of faith it's like
link |
I think I'm gonna be able to fix this I think
link |
I'm gonna be able to make this work
link |
of stuff changed where the level designers
link |
would build something then have to throw it away
link |
as something fundamental in the kind of
link |
graphics or level technology changed
link |
I'm so there were two big things
link |
that contributed to making it possible
link |
at that time frame I am
link |
two new things there was
link |
certainly hardcore optimized low level
link |
assembly language this is where
link |
I had hired Michael a brash away from
link |
Microsoft and he had been one of my
link |
early inspirations where
link |
that back in the soft disk days the library
link |
of magazines that they had
link |
some of my most treasured ones were
link |
Michael a brash's articles
link |
in Dr. Dobbs Journal and
link |
it was it was amazing after
link |
all of our success in doom we were able to
link |
kind of hit him up and say hey we'd like you
link |
to come work at id software and he was in
link |
the senior technical role at Microsoft
link |
and I am you know and
link |
he was on track for and this was right when
link |
Microsoft was starting to take off and I did
link |
convince him that what we were doing
link |
was going to be really amazing with quake it was
link |
going to it was going to be something nobody
link |
had seen before it had
link |
these aspects of what we were talking
link |
about we had metaverse talk back then
link |
we had read snow crash and we
link |
were we knew about this and
link |
big into the science fiction and we would talk
link |
about all that and kind of spin this tail
link |
and it was some of the same conversations
link |
that we have today about the metaverse
link |
about how you could have different areas
link |
linked together by portals and you could have
link |
user generated content and changing
link |
out all of these things so you really
link |
were creating the metaverse quaking
link |
and we we talked about things like
link |
philosophically advertised as a virtual
link |
reality experience you know that was
link |
the first wave of virtual reality was
link |
in the late 80s and early 90s
link |
you had like the lawnmower man
link |
I'm you know movie and you had
link |
time in newsweek talking about the early
link |
of course that cratered so hard that
link |
people didn't want to look at virtual reality
link |
for decades afterwards where
link |
it was just it was spoken
link |
mirrors it was not real in the sense
link |
that you could actually do something
link |
real and valuable with it but
link |
but still we had that kind of common
link |
set of talking points and we were talking
link |
about what these games could
link |
I could become and how you'd
link |
like to see people building all of these
link |
creative things because we were seeing an
link |
explosion of work with doom at that time
link |
people were doing amazingly
link |
cool things like we saw cooler
link |
levels that we had built coming out of the
link |
user community and then people finding
link |
ways to you know change the characters
link |
in different ways and it was great and we
link |
knew what we were doing in quake was
link |
removing those last things there
link |
was some quirky things with a couple
link |
of the data types that didn't work right
link |
for overriding and then and then the
link |
core thing about the programming model
link |
and I was definitely going to hit all of
link |
those in quake I'm
link |
but the the graphics side of it was
link |
I knew what I wanted to do
link |
and it was one of these
link |
hubris things where it's like well
link |
so far I've been able to kind of
link |
kick everything that I set out
link |
to go do but quake
link |
was definitely a little bit
link |
more than could be comfortably chewed
link |
but Michael was one of the
link |
one of the strongest programmers and
link |
graphics programmers that I knew
link |
and he was one of the people that I trusted
link |
to to write assembly code
link |
you know better than I could and there's
link |
there's a few people that I can point to
link |
about things like this where I'm a world
link |
class optimizer I mean I make things
link |
go fast but I recognize
link |
there's a number of people that
link |
can write tighter assembly code
link |
tighter SIMD code or tighter CUDA code
link |
then you know then I can write
link |
I'm you know my best strengths
link |
are a little bit more at the system
link |
level I mean I'm good at all of that
link |
but the most leverage comes
link |
from making the decisions that are a little bit
link |
higher up where you figure out
link |
how to change your large scale problems
link |
so that these lower level problems
link |
are easier to do or it makes it possible
link |
in a uniquely fast way
link |
you know my big wins in a lot of ways
link |
from all the way from the early games through
link |
you know through VR and the aerospace
link |
work that I'm doing and did
link |
and hopefully the AI work that I'm working on
link |
now is finding an angle on something
link |
that means you trade off
link |
something that you maybe think
link |
you need but it turns out you don't need
link |
and by making a sacrifice in one place
link |
you can get big advantages
link |
Is it clear at which level of the system
link |
those big advantages
link |
can be gained? It's not always
link |
clear and that's why the thing that
link |
that I try to make one of my core
link |
proselytize to a lot of people is
link |
trying to know the entire stack
link |
you know trying to see through
link |
everything that happens and it's almost
link |
impossible on like the web browser
link |
level of things where there's so many levels
link |
to it but you should at least understand
link |
what they all are even if you can't understand
link |
all the performance characteristics at
link |
each level but it goes all the way
link |
down to literally the hardware
link |
so what does the what is this
link |
chip capable of and
link |
what is this software that you're writing capable
link |
of and then with this architecture you put
link |
on top of that then the ecosystem around
link |
it all the people that are
link |
working on it so there are
link |
all these decisions and
link |
they're never made in a globally optimal way
link |
but sometimes you can drive
link |
a thread of global optimality through it
link |
you can't look at everything it's too complicated
link |
but sometimes you can step
link |
back up and make a different
link |
decision and we kind of went through this on the
link |
graphic side on Quake where
link |
in some ways it was kind of bad where
link |
Michael would spend his time
link |
writing like I'd rough out
link |
the basic routines like okay here's our
link |
span rasterizer and he would spend
link |
a month writing this
link |
beautiful cycle optimized
link |
piece of assembly language that
link |
it to do and he did it faster than
link |
my original code would do or probably
link |
what I would be able to do even if I had spent
link |
that month on it but then
link |
we'd have some cases when I'd be like
link |
okay well I figured out at this
link |
higher level instead of drawing these in
link |
a painter's order here I do a span
link |
buffer and it cuts out
link |
of these pixels but it means you need to
link |
rewrite kind of this interface of all of
link |
that and I could tell that wore on him a
link |
little bit but in the end it was
link |
it was the right thing to do where we wound up
link |
changing that rasterization
link |
approach and we wound up with a super optimized
link |
core loop and then a good
link |
system around it which minimized how much
link |
that had to be called
link |
in order to be able to do this kind of system
link |
level thinking whether we're talking
link |
about game development
link |
VR you have to be able to
link |
understand the hardware
link |
the low level software
link |
the high level software the design
link |
decisions the whole thing the full
link |
stack of it. Yeah and that's where
link |
a lot of these things become possible
link |
when you're really when you're bringing
link |
the future forward I mean there's a pace
link |
that everything just kind of glides towards
link |
where we have a lot of progress that's happening
link |
at such a different so many different ways
link |
you kind of slide towards progress just
link |
left to your own programs just get faster
link |
for a while it wasn't clear if they were
link |
going to get fatter more than they get
link |
quicker than they get faster and it cancels out
link |
but it is clear now in retrospect now
link |
programs just get faster and have gotten
link |
faster for a long time
link |
but if you want to do something like back
link |
of that original talking about
link |
scrolling games say what this needs to
link |
be five times faster well
link |
we can wait six years
link |
and just it'll naturally get that much
link |
faster at that time
link |
or you come up with some really clever way of
link |
doing it so there are those
link |
opportunities like that in a whole bunch
link |
of different areas now
link |
most programmers don't need to be
link |
thinking about that there's not that many
link |
you know there's a lot of opportunities for
link |
this but it's not everyone's work a day type
link |
stuff so everyone doesn't have to know
link |
how all these things work they don't have
link |
to know how their compiler works how
link |
you know the processor chip manages
link |
cache eviction and all these
link |
low level things but
link |
sometimes there are powerful opportunities
link |
that you can look at and say
link |
we can bring the future
link |
you know we can do something that wouldn't it be
link |
great if we could do this well we can do
link |
it today if we make a certain
link |
set of decisions and
link |
it is in some ways smoke and mirrors
link |
where you say it's like doom was
link |
a lot of smoke and mirrors where people
link |
thought it was more capable than it actually
link |
was but we picked the right
link |
smoke and mirrors to deploy in the game
link |
where by doing this
link |
people will think that it's more general
link |
we're gonna amaze them with what they've got here
link |
and they won't notice
link |
that it doesn't do these other things
link |
so smart decision making
link |
at that point that's where that
link |
that kind of global
link |
holistic top down view
link |
really a strong believer that technology
link |
sitting at that table having those discussions
link |
because you do have cases where you say well
link |
you want to be the Jonathan Ivy or whatever
link |
where it's a pure design
link |
cases now where you truly have almost infinite
link |
resources like if you're trying to do
link |
a scrolling game on the PC
link |
now you don't even have to talk to a technology
link |
person you can just have
link |
any intern can make that go run
link |
as fast as it needs to there and it can be
link |
completely design based
link |
but if you're trying to do something that's hard
link |
either that can't be done
link |
for resources like VR on a mobile
link |
chipset or that we don't even know how
link |
to do yet like artificial general intelligence
link |
it's probably going to be
link |
a matter of coming at it from an angle
link |
like I mean for AGI we have some of
link |
like some of the Hutter principles
link |
sort of some of that there are theoretical
link |
ways that you can say this is the optimal
link |
learning algorithm that can solve everything
link |
but it's completely impractical you know
link |
you just can't do that so
link |
clearly you have to make some concessions
link |
for general intelligence
link |
and nobody knows what the right ones are
link |
yet so people are taking different
link |
angles of attack I hope I've got something
link |
clever to come up with in that space
link |
it's been surprising to me
link |
and I think perhaps it is a
link |
principle of progress that
link |
smoking mirrors somehow is the way
link |
you build the future
link |
fake it till you make it
link |
and you almost always make it and I think that's going to be
link |
the way we achieve AGI
link |
that's going to be the way we build
link |
consciousness into our machines
link |
is there's you know
link |
philosophers debate about the touring test
link |
is essentially about faking it
link |
you start by faking it
link |
and I think that always leads
link |
because if you look at history
link |
arguments when as soon as people start talking about
link |
qualia and consciousness
link |
and Chinese rooms and things it's like
link |
I just check out I just don't think there's any value
link |
in those conversations it's just like
link |
go ahead tell me it's not going to work
link |
I'm going to do my best to try to make it work anyways
link |
I don't know if you work with legged robots
link |
there's a bunch of these
link |
they sure as heck make me feel like they're conscious
link |
way that's not here today
link |
you could see the kernel
link |
the beginnings of a flame
link |
we don't have line of sight but there's glimmerings
link |
of light in the distance for all of these things
link |
yeah I'm hearing murmuring in a distant
link |
well let me ask you a human question here
link |
you've in the game
link |
design space you've done a lot of incredible work
link |
throughout but in terms
link |
you have changed the world and there's a few people
link |
around you that did the same
link |
so famously there's some animosity
link |
but there's some animosity between you
link |
what is at the core of that animosity
link |
so there really hasn't been
link |
for a long time and even at the beginning
link |
I did push Romero out of the company
link |
one of the things that I look back
link |
if I could go back telling my younger self
link |
some advice about things
link |
corporate structure of id software
link |
really led to a bunch of problems
link |
we started off with us as
link |
and we had a buy sell agreement because we didn't
link |
want outsiders to be telling us what to do
link |
inside the company
link |
and that did lead to a bunch of the
link |
problems where I was sitting here going
link |
I'm working harder than anyone
link |
I'm doing these technologies
link |
nobody's done before
link |
but we're all equal partners
link |
and then I see somebody that's
link |
not working as hard
link |
I can't say I was the most mature about that
link |
I was 20 something years old
link |
bother me when I'm like everybody
link |
we need all pulled together and we've done it before
link |
everybody we know we can do this
link |
get together and we grind it all out
link |
but not everybody wanted
link |
to do that for for all time
link |
you know and I was the youngest one of the
link |
crowd there I had different
link |
sets of kind of backgrounds
link |
and motivations and left
link |
at that point where
link |
it was I'm alright
link |
either everybody has to be contributing
link |
like up to this level or they
link |
need to get pushed out was not
link |
I am that was not a
link |
great situation and I look back
link |
on it and know that
link |
we pushed people out of the company that could
link |
have contributed if there was
link |
a different framework for them
link |
and the modern kind of Silicon Valley
link |
like let your stock vest over a time period
link |
and maybe it's non voting stock
link |
and all those different things we knew nothing about
link |
any of that I mean we we didn't know
link |
what we were doing in terms of corporate
link |
structure or anything so if you think
link |
the framework was different some of the
link |
human tension could have been a little bit
link |
almost certainly would have I
link |
mean I look back at that and
link |
and it's like even trying to summon up
link |
in my mind it's like I know
link |
I was really really angry
link |
about I am you know like
link |
Romero not working as hard as I wanted
link |
him to work or not carrying
link |
his load on the design for quake
link |
and coming up with things there
link |
but you know he was definitely doing things
link |
he made some of the best levels there
link |
he was working with our I some of
link |
our external teams like Raven on the
link |
licensing side of things
link |
I am you know but there were differences
link |
of opinion about it
link |
but he landed you know right on his
link |
feet he went he got 20 million dollars
link |
from Eidos to go do I on storm
link |
and he got to do things his way
link |
and spun up three teams simultaneously
link |
because that was always one of the
link |
one of the challenging things in it it
link |
where we were doing these single string
link |
one project after another
link |
and I think some of them you know
link |
wanted to grow the company more and I
link |
didn't because I knew people that were
link |
saying that oh companies turn to shit
link |
when you got 50 employees it's just
link |
a different world there and I loved
link |
our little dozen people
link |
working on the projects
link |
but you can look at and say well
link |
business realities matter it's like
link |
you're super successful here and we could
link |
we could take a swing and a miss on
link |
something but you do it a couple times
link |
and you're out of luck there's
link |
there's a reason companies try to have
link |
multiple teams running at one time
link |
something I didn't really appreciate back then
link |
so if you look past all that
link |
you did create some amazing things together
link |
what did you love about John Romero
link |
what did you respect and appreciate about
link |
what did you admire about him
link |
what did you learn from him
link |
when I met him he was the coolest programmer I had ever met
link |
I you know he had done all of this
link |
stuff he had he had made all of these
link |
games he had worked at
link |
you know one of the companies that I thought was the coolest
link |
at origin systems and
link |
he knew all this stuff he made things
link |
happen fast and he could
link |
it was also kind of a polymath about this where
link |
he could do he made his own he drew his
link |
own art he made his own levels as well
link |
as you know we worked on sound design
link |
systems on top of actually
link |
being a really good programmer
link |
and we had you know we went through
link |
a little it was kind of fun where one of
link |
the early things that we did where
link |
there was kind of the young buck bit going in
link |
where I was the new guy
link |
and he was the kind of the
link |
he was the top man programmer at
link |
the soft disk area and eventually
link |
we had sort of a challenge over the weekend
link |
that we were going to like race to
link |
implement this game to port one of our PC games
link |
back down to the Apple too
link |
and that was where we finally kind of became clear
link |
Carmack stands a little bit apart on the
link |
programming side of things and
link |
but Romero then very gracefully
link |
moved into well he'll work on the tools
link |
he'll work on the systems
link |
do some of the game design stuff as well as
link |
contributing on starting
link |
to lead the design aspects of a lot of things
link |
enormously valuable
link |
in the early stuff and so much of Doom
link |
and even Quake have his stamp
link |
on it in a lot of ways
link |
but you know he wasn't
link |
at the same level of focus that
link |
I brought to the work that we were
link |
doing there and he really did
link |
such a degree of success that
link |
it was all in the press about that
link |
the Rockstar game programmers
link |
I mean it's the Beatles problem
link |
yeah I mean you know he ate it up
link |
and he did personify it there was the whole
link |
game developers with
link |
Ferraris that we had
link |
there and I thought that
link |
you know that led to some
link |
challenges there but
link |
you know the stuff that was great in the games
link |
did come from him and I would certainly
link |
not take that away from him
link |
and even after we parted
link |
ways and he took his swing with
link |
Eidos in some ways he was
link |
like he was ahead of the curve with mobile
link |
gaming as well where
link |
one of his companies after Eidos was working
link |
on feature phone game development
link |
and I wound up doing
link |
some of that just before
link |
the iPhone crossing over into the iPhone
link |
phase there and that was something
link |
that clearly did turn out to be a huge
link |
thing although he was too
link |
early for what he was working on
link |
at that time you know we've had
link |
pretty cordial relationships
link |
where I was happy to talk with him anytime
link |
I've run into him at a
link |
conference I've actually had some other people
link |
just say it's like oh you shouldn't
link |
you know you shouldn't go over there and give him the time
link |
of day or felt that
link |
Masters of Doom was
link |
played things up in a way that I shouldn't be
link |
too happy with but I'm okay
link |
with all of that. So you still got love
link |
in your heart. Yeah I mean I just talked
link |
with him like last year
link |
I guess it was even this year about mentioning
link |
that I'm going off doing this AI stuff
link |
I'm going big into artificial intelligence
link |
and he had a bunch of
link |
ideas for how AI is going to
link |
play into gaming and you know asked
link |
if I was interested in collaborating and it's not
link |
in line with what I'm
link |
doing but I do you know
link |
I wish almost everyone the best I mean
link |
I know I may not have partnered on the best
link |
of terms with you know with
link |
some people but I was thrilled
link |
to see Tom Hall writing
link |
VR games now he wrote
link |
working on a game called Demio which is
link |
really an awesome VR game it's like
link |
Dungeons and Dragons we all used to play Dungeons
link |
and Dragons together that was one of the things that was what we did
link |
on Sundays in the early
link |
days I would dungeon master and they'd all play
link |
and I you know so it really made
link |
me smile seeing Tom involved with
link |
an RPG game in virtual reality
link |
and maybe less than a year involved
link |
Oculus was acquired by Facebook
link |
2014 you've spoken
link |
brilliantly about both the low level details
link |
the experimental design and the big picture vision
link |
of virtual reality
link |
let me ask you about the metaverse
link |
the big question here both
link |
philosophically and technically
link |
how hard is it to build the metaverse
link |
what is the metaverse in your view
link |
you started with discussing
link |
and thinking about quake as a kind of metaverse
link |
as you think about
link |
it today what is the metaverse
link |
could create this compelling user value
link |
this experience that will change the world
link |
and how hard is it to build it
link |
so the term comes from
link |
Neil Stephenson's book snow crash
link |
which many of us had read back in
link |
the 90s it was one of those kind of
link |
formative books and
link |
there was this sense that
link |
the possibilities and kind of the freedom
link |
and unlimited capabilities
link |
to build a virtual world
link |
that does whatever you want
link |
whatever you ask of it has been a powerful draw
link |
for generations of developers
link |
game developers specifically
link |
and people that are thinking about more
link |
general purpose applications
link |
so we were talking about that
link |
back in the doom and quake days about
link |
how do you wind up with an interconnected
link |
set of worlds that you kind of visit
link |
from one to another and as
link |
web pages were becoming a thing you start
link |
thinking about how what is the
link |
interactive kind of 3D based
link |
equivalent of this and there were
link |
a lot of really bad takes you had
link |
virtual reality markup languages
link |
and there's aspects like that
link |
that came from people saying
link |
well what kind of capabilities
link |
should we develop to
link |
to enable this and that
link |
kind of capability first work has usually
link |
not panned out very well
link |
on the other hand we have
link |
successful games that started
link |
with things like doom and quake
link |
and communities that formed around those
link |
and whether it was server lists
link |
in the early days or literal
link |
portaling between different games
link |
and then modern things
link |
that are on completely different order of magnitude
link |
like minecraft and fortnite that have
link |
100 million plus users
link |
I still think that that's the right way
link |
to go to build the metaverse is
link |
you build something that's amazing that people
link |
love and people wind up spending all their
link |
time in because it's awesome
link |
and you expand the capabilities of that
link |
so even if it's a very basic experience
link |
minecraft is an amazing case study
link |
where what's been able to be done with
link |
that is really enlightening
link |
and there are other cases
link |
where like right now roblox
link |
is basically a game construction
link |
kit aimed at kids and that was a capability
link |
first play and it's achieving scale
link |
that's on the same order
link |
of those things so
link |
it's not impossible but
link |
my preferred bet would be
link |
you make something amazing that people love
link |
and you make it better and better
link |
and that's where I could say
link |
we could have gone back and followed a path
link |
kind of like that in the early days
link |
if you just kind of take the same game
link |
whether it's when Activision demonstrated
link |
that you could make Call of Duty every year
link |
and not only is it not bad
link |
people kind of love it and it's a
link |
it's very profitable
link |
it's something like that
link |
release a new version every year
link |
that lets the capabilities grow and expand
link |
to start saying it's like okay
link |
it's a game about running around and shooting things
link |
but now you can have
link |
bring your media into it
link |
you can add persistence of
link |
social sense signs of life
link |
or whatever you want to add to it
link |
I still think that's
link |
quite a good position to take
link |
doing a bottoms up capability
link |
approach with Horizon Worlds
link |
where it's a fairly general purpose
link |
creators can build whatever
link |
they want in their sort of thing
link |
I am you know it's
link |
it's hard to compare and compete with something
link |
like Fortnite which also has
link |
enormous amounts of creativity
link |
even though it was not designed originally
link |
as a general purpose sort of thing
link |
so there's we have examples on both sides
link |
I would have bet on
link |
to do entertainment
link |
valuable destination first
link |
and expanding from there
link |
can you imagine the thing that will be
link |
kind of if we look back
link |
a couple centuries from now
link |
and you think about the experiences
link |
the singularity the transition
link |
where most of our world
link |
moved into virtual reality
link |
what do you think those experiences will look like
link |
so I do think it's going to be
link |
kind of like the way the web
link |
slowly took over where you're
link |
the frog in the pot of water
link |
that's slowly heating up where
link |
having lived through all of that
link |
I remember when it was shocking to start
link |
seeing the first website address
link |
on a billboard when you're like hey
link |
my computer world is infecting the real world
link |
you know this is spreading out
link |
there's still when you look back and say
link |
well what made the web take off
link |
a big bang sort of moment there
link |
it was a bunch of little things
link |
that turned out not to even be the things
link |
that are relevant now that
link |
brought them into it so
link |
well I wonder from I mean like you said
link |
you're not a historian so maybe
link |
there's a historian
link |
out there that could really identify
link |
data driven way it could be like
link |
MySpace or something like that
link |
maybe the first major social network
link |
that really reached into
link |
world or something like that
link |
I think that's kind of the fallacy
link |
of historians though looking for
link |
some of those kind of primary dominant
link |
causes where so many of
link |
these things are like we see
link |
an exponential curve but it's not because
link |
like one thing is going exponential
link |
it's because we have hundreds
link |
of little sigmoid curves overlapped on
link |
top of each other and they just happen to keep
link |
adding up so that you've got something kind
link |
of going exponential at any given point
link |
but no single one of them
link |
was the critical thing there were
link |
dozens and dozens of things I mean
link |
seeing the transitions of stuff like
link |
as obviously MySpace giving way
link |
to other things but even like blogging giving
link |
way to social media
link |
and getting resurrected in
link |
other guys and the memes that
link |
happened there dancing baby gift
link |
or whatever the all your base
link |
not belong to us whatever those
link |
early memes that led to the modern
link |
memes and the humor on
link |
the different the different evolution
link |
of humor on the internet I'm sure
link |
the historians will also write books about
link |
from the different website
link |
that support to create the infrastructure
link |
for that humor like Reddit and all that kind of stuff
link |
so people will go back
link |
and they will name firsts and critical
link |
moments but it's probably going to
link |
be a poor approximation of what actually
link |
happens and we've already
link |
seen like in the VR space where
link |
it didn't play out the
link |
way we thought it would in terms of what was going to be
link |
like when the modern
link |
era VR basically started with my E3
link |
demo of Doom 3 on the Rift prototype
link |
so we're like first person
link |
shooters in VR match made in heaven
link |
right and that didn't
link |
work out that way at all they have
link |
you know they have the most comfort problems with it
link |
and then the most popular
link |
virtual reality app is Beat Saber
link |
which nobody predicted back then
link |
what does that make you
link |
principles if you were to like
link |
reverse engineer that why
link |
are these like silly fun games
link |
well it actually makes
link |
very clear sense when you
link |
analyze it from hindsight
link |
and look at the engineering reasons where
link |
it's not just that it was a magical
link |
quirky idea it was something that
link |
played almost perfectly to what
link |
turned out to be the real strengths of VR
link |
where the one thing that I really
link |
underestimated importance in VR
link |
was the importance of the controllers
link |
I was still thinking we could do a lot more
link |
with the game pad and just the
link |
amazingness of taking any existing game
link |
being able to move your head around and look around
link |
that was really amazing
link |
but the controllers
link |
were super important but the problem is
link |
so many things that you do with the controllers
link |
just suck it feels like
link |
it breaks the illusion like trying to pick up glasses
link |
with the controllers where you're like oh use the grip
link |
button when you're kind of close and it'll
link |
snap into your hand all of those
link |
things are unnatural
link |
actions that you do them and it's still
link |
part of the VR experience but
link |
beat saber winds up
link |
I playing only to the
link |
strengths it completely hides all the weaknesses
link |
of it because you are holding
link |
something in your hand you keep a solid grip
link |
on it the whole time it slices
link |
through things without ever bumping into
link |
things you never get into the point where
link |
you know I'm knocking on this table but in
link |
VR my hand just goes right through it
link |
so you've got something that
link |
slices through so it's never
link |
your brain telling you oh I should have hit something
link |
you've got a lightsaber here it's just
link |
you expect it to slice through everything
link |
turned out to be a really powerful
link |
aspect of virtual reality where you're
link |
blocking the world off and constructing
link |
the world around you and
link |
I and being something that can run
link |
efficiently on even this relatively
link |
low powered hardware and
link |
can have a valuable loop
link |
in a small amount of time where
link |
a lot of modern games you're supposed
link |
to sit down and play it for an hour just to get
link |
anywhere sometimes a new game takes an hour to
link |
get through the tutorial level and that's
link |
not good for VR for a couple reasons
link |
you do still have the comfort issues if
link |
you're moving around at all but you've
link |
also got just you know discomfort
link |
from the headset battery life span
link |
on the mobile versions so having
link |
things that do break down into
link |
three and four minute windows of play
link |
that turns out to be very valuable from
link |
a gameplay standpoint
link |
so it winds up being kind of a perfect
link |
form of all of these things that are really
link |
good it doesn't have any of the comfort
link |
problems you're not navigating around
link |
you're standing still all the stuff flies
link |
at you it has placed audio
link |
the whole fitness in VR nobody
link |
was thinking about that back in the
link |
at the beginning and it turns out that
link |
that is an excellent daily
link |
fitness thing to be doing if you go play
link |
an hour of beat saver
link |
or supernatural or something that is
link |
legit solid exercise
link |
and it's more fun than doing it
link |
just about any other way there
link |
so that's kind of the arcade stage
link |
of things if I were to
link |
say with my experience with VR
link |
the thing that I think
link |
is powerful is the
link |
maybe it's not here yet
link |
but the degree to which
link |
it is immersive in the way
link |
that quake is immersive
link |
it takes you to another world
link |
for me because I'm a fan of role
link |
the Elder Scrolls series
link |
Skyrim or even Daggerfall
link |
it just takes you to another world
link |
and when you're not in that world
link |
you miss not being there
link |
and then you just you kind of want to
link |
stay there forever because life is
link |
and you just want to go to this place
link |
is that I there was a
link |
there was a time when I
link |
we were kind of asked to come up with
link |
like what's your view about VR
link |
my pitch was that it should be better inside
link |
the headset than outside it's the world
link |
as you want it and
link |
everybody thought that was dystopian
link |
and like that's like oh you're just going to
link |
forget about the world outside
link |
and I don't get that
link |
mindset where the idea that
link |
if you can make the world better inside
link |
the headset than outside
link |
you've just improved the person's life
link |
that has a headset that can wear it
link |
and there are plenty of things
link |
that we just can't do for everyone in the
link |
real world everybody can't have Richard Branson's
link |
private island but everyone can have
link |
a private VR island and it can have
link |
the things that they want on it and there's
link |
a lot of these kind of rivalrous goods
link |
in the real world that VR
link |
can just be better at
link |
we can do a lot of things like that
link |
that can be very very rich
link |
so yeah I want the I think it's going to be
link |
a positive thing this world where people want
link |
to go back into their headset
link |
where it can be better than somebody
link |
in a tiny apartment
link |
can have a palatial estate in virtual reality
link |
that can have all their friends from all over the world
link |
come over and visit them
link |
without everybody getting on a plane
link |
and meeting in some place
link |
and dealing with all the other logistics hassles
link |
there is real value in the
link |
you know the presence that you can get
link |
for remote meetings it's
link |
it's all the little things that we need to sort out
link |
but those are things that we have
link |
line of sight on people
link |
that have been in like a good VR meeting
link |
using work rooms where you can say
link |
oh that was better than a zoom meeting
link |
but of course it's more of a hassle
link |
to get into it not everyone has the headset
link |
interoperability is worse
link |
you can't have you cap out at a certain number
link |
there's all these things that need to be fixed
link |
but that's one of those things you can look at
link |
and say we know there's value there
link |
we just need to really grind hard
link |
file off all the rough edges
link |
and make that possible
link |
so you do think we have line of sight
link |
there's a reason like
link |
in person for example
link |
and if somebody were to ask me
link |
why it's not the same I wouldn't be able to write down
link |
that it's possible whatever the magic is
link |
for in person interaction
link |
that immersiveness
link |
we are almost there
link |
yes so the idea of
link |
doing a VR interview with someone
link |
I'm not saying it's here right now
link |
but you can see glimmers
link |
of what it should be and
link |
we largely know what would need to be
link |
fixed and improved to
link |
like you say there's a difference between
link |
a remote interview doing a podcast over zoom
link |
or something and face to face
link |
there's that sense of presence
link |
that immediacy the super low latency
link |
responsiveness being able to see
link |
all the subtle things there
link |
just occupying the same field of view
link |
and all of those are things that we absolutely
link |
and that simple case of
link |
a small meeting with a couple people
link |
that's the much easier case than everybody thinks
link |
the ready player one multiverse with a thousand
link |
people going across that you know a huge bridge
link |
that's harder in a lot of other technical ways
link |
not to say we can't also do
link |
that but that's further away and has more challenges
link |
but this small thing about
link |
being able to have a meeting with
link |
one or a few people
link |
and have it feel real
link |
feel like you're there
link |
you have the same interactions and talking with them
link |
you get subtle cues as we start
link |
getting eye and face tracking and some of the other things
link |
on high end headsets
link |
a lot of that is going to come over
link |
and it doesn't have to be
link |
as good this is an important
link |
thing that people miss where
link |
there was a lot of people that
link |
especially rich people that would
link |
look at VR and say it's like
link |
this just isn't that good
link |
and I'd say it's like well you've already been
link |
court side backstage
link |
and you know on pit row and you've done all of
link |
these experiences because you get to do them in
link |
real life but most people don't
link |
get to and even if the experience
link |
is only half as good if it's something
link |
that they never would have gotten to do before
link |
it's still a very good thing
link |
and as we can push that number up
link |
over time it has a minimum
link |
viable value level
link |
when it does something
link |
that is valuable enough to people as long as it's
link |
better inside the headset on any metric
link |
than it is outside and people choose to go
link |
there we're on the right path
link |
and we have a value gradient that
link |
I'm just always hammering on we can just follow
link |
this value gradient just keep making things
link |
better rather than
link |
going for that one
link |
close your eyes swing for the fences
link |
I kind of silver bullet
link |
approach well I wonder if there's a value
link |
gradient for in person meetings because if you
link |
that would change the world
link |
you don't need a ready player one
link |
I wonder if there's that
link |
value gradient you can follow
link |
if there is any follow it
link |
then there'll be a certain
link |
a certain point where people
link |
what are the bottlenecks is it software
link |
is it hardware like is it
link |
is it all about latency
link |
so I have big arguments
link |
internally about strategic
link |
things like that where I
link |
like the next headset that's
link |
coming out that we've made
link |
various announcements about is going to be a higher end
link |
headset more expensive more features
link |
lots of people want to make those tradeoffs
link |
I you know we'll see
link |
what the market has to say about the
link |
exact tradeoffs we've made here
link |
but if you want to replace zoom
link |
you need to have something that everybody has
link |
I like cheaper because
link |
and cheaper wind up being
link |
a virtuous cycle there where
link |
expensive and more features
link |
tends to also lead towards heavier and it just
link |
kind of goes it's like let's add more features the features
link |
they have physical presence and weight
link |
and draw from batteries and all of those
link |
things so I've always favored
link |
a lower end cheaper
link |
faster approach that's why
link |
I was always behind the mobile side of
link |
VR rather than the higher end PC
link |
headsets I think that's
link |
proven out well but there's
link |
I you always ideally we have
link |
a whole range of things but if you've only got
link |
one or two things it's important
link |
that those two things cover the
link |
you know the scope that you think is most
link |
important when we're in a world when it's like
link |
cell phones and there's 50 of them on the market
link |
covering every conceivable
link |
ecological niche you want that's going to be great
link |
but we're not going to be there for a while
link |
where the bottlenecks is it the hardware
link |
the software yeah so right
link |
now I am you can play
link |
you can get workrooms
link |
on quest and you can set up these
link |
things and it's a pretty good experience it's
link |
surprisingly good I haven't tried it it's
link |
surprisingly good yeah the voice
link |
latency is better on that
link |
than a lot better than a zoom meeting
link |
so you've got a more a better sense
link |
of immediacy there the
link |
expressions that you get from
link |
the current hardware with just
link |
kind of your controllers and your head
link |
is pretty realistic feeling you've got a
link |
pretty good sense of being there with someone
link |
avatars of people yeah
link |
you do you get to see their body
link |
yeah and they're sitting around a table
link |
it feels better than zoom better than
link |
you yeah better than you'd expect for that it
link |
yeah I'd say it's it's quite a bit
link |
better than zoom when everything's working right
link |
but there's still all the rough edges
link |
of the reason zoom became so successful
link |
is because they just nailed the usability
link |
of everything it's high quality
link |
with a absolutely first rate
link |
experience and we are not
link |
there yet with any of the VR stuff
link |
I'm trying to to push hard
link |
to get I keep talking
link |
about it's like it needs to just be one click
link |
to make everything happen and we're getting there
link |
in our our home environment not
link |
the whole work rooms application but the main home
link |
where you can now kind of go over and click
link |
and invite and still winds up taking
link |
five times longer than it should
link |
but we're getting close to that
link |
where you click there they click
link |
on their button and then they're sitting there
link |
in this good presence with you
link |
but latencies need to get a lot better
link |
user interface needs to get a lot better
link |
I'm ubiquity of the headsets
link |
needs to get better we need to have
link |
a hundred million of them out there
link |
just so that everybody knows somebody that uses
link |
this all the time well I think it's a
link |
virtuous cycle because I do think
link |
is the thing that makes or breaks
link |
this kind of revolution
link |
it's so interesting how like
link |
you said one click but it's also like how you
link |
achieve that one click
link |
I don't know what is a
link |
question maybe let's keep it outside of meta
link |
this is about meta but also Google and
link |
big company are they
link |
able to do this kind of thing
link |
it seems like let me put
link |
on my cranky old man head
link |
not do a good job of
link |
these user friendly interfaces
link |
as they get bigger and bigger as a company
link |
like Google has created
link |
some of the greatest interfaces ever
link |
I mean creating Gmail
link |
just so many brilliant
link |
and she seems to be getting crappier
link |
and crappier at that same with
link |
it's just it seems to get worse
link |
and worse at that is this I don't know what is
link |
it because you become more conservative
link |
careful risk averse
link |
is that why can you speak to that
link |
and really eye opening to me working inside
link |
a tech Titan where
link |
had my small companies and then we're
link |
acquired by a you know a midsize
link |
game publisher and then
link |
Oculus getting acquired by
link |
meta and meta has grown by a factor
link |
of many just in the
link |
the eight years since the acquisition
link |
not have experience with this
link |
and it's it was interesting
link |
because I remember like previously my benchmark
link |
of resources was some of the government programs
link |
I interacted with on the aerospace
link |
side and I remember thinking
link |
there was okay there's an Air Force
link |
program and they spent 50 million dollars
link |
and they didn't they didn't
link |
launch anything they didn't even build anything
link |
it was just kind of like they I you know
link |
they made a bunch of papers and had some parts
link |
in a warehouse and nothing came
link |
of it's like 50 million dollars
link |
I've had to radically recalibrate my
link |
sense of like how much money can
link |
be spent with without a product
link |
of the resources where
link |
on the very the plus
link |
side VR has turned out
link |
we've built pretty much
link |
you know we just passed the 10 year mark then
link |
from my I like my first demo
link |
of the Rift and if I
link |
could have said what I wanted to have it would
link |
have been a standalone inside
link |
out tracked 4k resolution
link |
that could still plug into a PC for high end
link |
rendering and that's exactly what we've got
link |
on Quest 2 first of all let's
link |
pause on that with me being cranky
link |
and everything it's what
link |
meta achieved with
link |
Oculus and so on is incredible
link |
I mean this is this
link |
what when I thought about the future of
link |
VR is what I imagine in terms of hardware
link |
I would say and maybe in terms
link |
of the experience as well but
link |
it's still not there somehow
link |
on the one hand we did kind of
link |
achieve it and win and we've got we've sold
link |
you know we're a success right now
link |
but the amount of resources
link |
that have gone into it it winds up getting
link |
clotted up into counting where last
link |
mark did announce that
link |
they spent ten billion dollars a year
link |
like on reality labs now reality
link |
labs covers a lot it was
link |
VR was not the large part
link |
of it also had portal and spark and the
link |
big AR research efforts
link |
and it's been expanding out
link |
to include AI and other things there
link |
a lot going on there but
link |
ten billion dollars was just a number
link |
that I had trouble processing
link |
it's just I feel sick to my
link |
stomach thinking about that much money
link |
being spent but that's how
link |
they demonstrate commitment to this
link |
more so than like yeah Google goes
link |
and cancels all of these projects
link |
different things I like that
link |
while meta is really sticking with
link |
the funding of VR and
link |
AR is still further out with it so
link |
there's something to be said for that
link |
it's not just going to vanish
link |
the works going in I just wish it could
link |
be all those resources could be
link |
applied more effectively
link |
because I see all these cases I point
link |
out these examples of how
link |
a third party that we're kind of competing
link |
with in various ways a number of these examples
link |
with a tenth of the people
link |
that we do internally
link |
and a lot of it comes from yes there's
link |
the small company can just go do it
link |
while in a big company you do have
link |
is there some SDK internally that you
link |
should be using because another team is making
link |
it you have to have your cross functional
link |
group meetups for different things
link |
you do have more concerns about
link |
you know about privacy or diversity
link |
and equity and I'm safety
link |
of different things parental issues
link |
and things that a small start up company
link |
can just kind of you know Cowboy
link |
often do something interesting
link |
and there's a lot more
link |
that is a problem that you have to
link |
pay attention to in the big companies but I'm not
link |
willing to believe that we are within
link |
even a factor of two
link |
or four of what the efficiency could be
link |
you know I am constantly
link |
kind of crying out for it's like
link |
we can do better than this
link |
and you wonder what the mechanisms to
link |
unlock that efficiency are
link |
there is some sense in a large company
link |
like an individual engineer might not believe
link |
that they can change the world maybe
link |
you delegate a little bit of the
link |
responsibility to be the one
link |
who changes the world in a big company
link |
I think but the reality is
link |
will get changed by a single
link |
engineer anyway so if
link |
whether inside Google or inside a start
link |
up it doesn't matter it's just like Google
link |
help those engineers believe they're the ones
link |
that are going to decrease that latency
link |
is it'll take one John Carmack
link |
like the 20 year old
link |
inside meta right now to change everything
link |
point that out and push people it's like
link |
try to go ahead and when you see
link |
some because there is you get the silo
link |
mentality where you're like okay I know
link |
something's not right over there but that's
link |
I'm staying in my lane here
link |
and there's a couple people that I can
link |
you know I can think about that are willing
link |
to just like hop all over the place
link |
and man I treasure them the people that are
link |
just willing to they're fearless
link |
you know they will go over and they will go
link |
rebuild the kernel and change this distribution
link |
go in and hack a firmware over here
link |
to to get something done right
link |
and that is relatively rare
link |
you know there's thousands of developers
link |
and you've got a small handful that are willing
link |
to operate at that level
link |
and you know and it's potentially risky
link |
for them the the politics are
link |
you know are real in a lot of that and I'm in the
link |
you know very much the privileged position
link |
of I am you know I'm
link |
more or less untouchable there where
link |
I've been dinged like twice for it's like
link |
you said something insensitive in that post
link |
and you should probably not say that
link |
I am but for the most part
link |
yes I you know I get away with
link |
I every week I'm posting something
link |
you know pretty loud and opinionated
link |
in you know internally and
link |
I think that's useful for the company
link |
yeah it's not it's rare to have a
link |
position like that and I can't necessarily
link |
offer advice for how someone
link |
can do that I well you could
link |
offer advice to a company in general to
link |
give a little bit of freedom
link |
for the young wild
link |
like the wildest ideas come from
link |
and so you need to give
link |
the young minds freedom to think
link |
big and wild and and crazy
link |
and for that they have to be opinionated
link |
they have to think
link |
crazy ideas and thoughts
link |
and pursue them with a full
link |
passion without being slowed down by bureaucracy
link |
or managers and all that kind of stuff
link |
obviously startups
link |
really empower that but big companies
link |
could too and that's that's a design
link |
challenge for company for big companies
link |
to see how can you enable
link |
that how can you come there are
link |
so many resources there and
link |
they do you know amazing things do get
link |
accomplished but there's so much
link |
more that could come out of that and
link |
you know I'm hope I'm always hopeful I'm
link |
an optimist in almost everything you know I think
link |
things can get better I think that they
link |
can improve things that you go
link |
through a path and you're learning
link |
how does and doesn't work and I'm not
link |
I'm not ready to be fatalistic about
link |
the kind of the outcome of any of that
link |
me neither I know too
link |
many good people inside of those large
link |
companies that are incredible
link |
you have a friendship
link |
often when I talk to him he'll bring up
link |
how incredible of an engineer and just
link |
a big picture thinker you are
link |
his huge amount of respect
link |
I just I've never been
link |
a fly in the wall between a discussion between
link |
the two of you I just wonder is there something
link |
debate argue about
link |
discuss is there some interesting problems
link |
that the two of you
link |
think about you come from different
link |
worlds maybe there's some intersection
link |
and then in aerospace maybe
link |
there's some intersection
link |
in your new efforts
link |
in artificial intelligence
link |
in terms of thinking is there something
link |
interesting you could say about sort of the
link |
things that you need to base the two of you have
link |
so I think in some ways
link |
we do have a kind of similar background
link |
where we're almost exactly the same age
link |
and we had kind of similar
link |
programming backgrounds on the personal
link |
computers and you know even some of the
link |
books that we would read and things that
link |
would kind of turn us into the people that
link |
I think there is a degree of
link |
sensibility similarities
link |
where you know we kind of call
link |
bullshit on the same things and kind of see
link |
in different technology and there's that
link |
sense of you know I always talk about the
link |
speed of light solutions for things and he's
link |
thinking about kind of
link |
minimum manufacturing and engineering and
link |
operational standpoints for
link |
so I mean I first met Elon
link |
right at the start of the aerospace era
link |
where I wasn't familiar with
link |
you know I was still in my game dev bubble
link |
I really wasn't familiar with all the startups
link |
that were going and being successful
link |
and what went on with PayPal and all of his
link |
different companies but you know I met
link |
him as I was starting to do Armadillo
link |
Aerospace and you know he
link |
came down with kind of his right hand
link |
propulsion guy and we
link |
talked about rockets you know what can we
link |
what can we do with this and it was kind
link |
of specific things about like
link |
how are our flight computers set up
link |
what are different propellant options
link |
you know what can happen with
link |
different ways of putting
link |
things together and then
link |
in some ways he was certainly the
link |
biggest player in the sort of
link |
space community that was going on in the
link |
well funded although you know his funding
link |
in the larger scheme of things compared to
link |
a like a NASA or something
link |
like that was really tiny
link |
it was a lot more than I had at the time
link |
it was interesting I had a point years later
link |
when I realized okay
link |
my like my financial resources
link |
at this point are basically what
link |
Elon's was when he went all in
link |
on SpaceX and Tesla
link |
corners he does not get
link |
the respect that he should about being
link |
a wealthy person that could
link |
just retire and he went
link |
all in where he was really
link |
he could have gone bust and there's
link |
plenty of people you look at the you know
link |
or entertainers that had all the money
link |
in the world and blew it he could have been
link |
the business case example of that
link |
you know the things that he was doing space
link |
exploration electrification of
link |
solar city type things
link |
these are big world level
link |
things and I have a great deal
link |
of admiration that he was willing
link |
to throw himself so completely
link |
in contrast with myself I was doing
link |
armadillo aerospace with this tightly
link |
bounded it was John's
link |
crazy money at the time
link |
that had a finite limit on it it was
link |
never going to impact me or my family
link |
failed and I was still hedging
link |
my bets working at in software
link |
at the time when he had been
link |
you know really all in
link |
I have a huge amount of respect for that
link |
and people do not the other thing I get
link |
irritated with is people would say it's like
link |
Elon's just a business guy
link |
he just got like he was gifted
link |
the money and he's just kind of
link |
investing in all of this when
link |
he was really deeply involved
link |
in a lot of the decisions
link |
not all of them were perfect but
link |
he cared very much
link |
about engine material selection
link |
propellant selection
link |
and for years he'd be kind of telling
link |
me it's like get off that hydrogen
link |
peroxide stuff it's like
link |
liquid oxygen is the only proper
link |
the times that I've gone through the factories
link |
with him we're talking
link |
very detailed things about
link |
like how this weld is made
link |
how this sub assembly goes together
link |
what are like start
link |
up shut down behaviors of the different
link |
at a very detailed level and I think
link |
that he is the best modern
link |
example now of someone that
link |
tries to that can effectively
link |
micromanage some decisions on things
link |
SpaceX to some degree where
link |
he cares enough about it I worry a lot
link |
that he stretched too thin that
link |
you get boring company in Neuralink
link |
and Twitter and all the other possible
link |
things there where I know
link |
limits on how much I can pay attention
link |
to that I have to kind of box
link |
off different amounts of time
link |
and I look back at like at my aerospace
link |
side of things it's like I did not
link |
go all in on that I did not
link |
commit myself at a level that it would
link |
have taken to be successful there
link |
and it's kind of a weird thing just
link |
like having a discussion with
link |
the richest man in the world right now
link |
you know on a level that is still
link |
wheelhouse on a technical side of things
link |
so doing that systems level type of
link |
thinking we can go to the
link |
level of details and go up high to the
link |
big picture do you think
link |
years do you think we're going to put a human
link |
on Mars like what do you think is the
link |
no I do in fact I made
link |
a bet with someone with a group of people
link |
kind of this about whether
link |
boots on Mars by 2030
link |
and this was kind of a fun
link |
fun story because I was
link |
at an Intel sponsored event
link |
and we had a bunch of just
link |
world class brilliant people and we were
link |
talking about computing stuff but the after dinner
link |
conversation was like what are some other
link |
things how they're going to go in the future
link |
and one of the ones tossed up on the white board
link |
was like boots on Mars by 2030
link |
people in the room thought yes
link |
you know I thought that like SpaceX is kicking
link |
ass we've got all this possible stuff
link |
I seems likely that it's
link |
going to go that way and
link |
less than 50% chance that it's going to make
link |
and people you know were kind of like oh
link |
why the pessimism or whatever and of course
link |
I'm an optimist at almost everything
link |
but for me to be the one kind
link |
of outlier saying no I don't think so
link |
saying some of the things I said well let's
link |
be concrete about it let's bet
link |
$10,000 that it's not going to happen
link |
this was really a startling
link |
thing to see that I again
link |
room full of brilliant people but as
link |
soon as like money came on the line
link |
and they were like do I want to put
link |
$10,000 and I was not the richest person
link |
in the room there are people much better
link |
off than there's a spectrum
link |
you know as soon as they started think it's like oh I could
link |
keeping my position right
link |
engineers they engage their brain they started thinking
link |
it's like okay launch windows
link |
like how many times would it take to get this
link |
right what historical precedence do we have
link |
and then it mostly came down to it's like well
link |
what about in transit by 2030
link |
and then I if you know what about
link |
I you know different things or would you
link |
hand would you go for 2032
link |
but one of the people did go ahead
link |
and was optimistic enough to make a bet
link |
with me so I have a $10,000
link |
I think it's going to happen shortly thereafter
link |
I think there will probably be infrastructure
link |
but I don't think that we'll have humans
link |
on Mars on 23rd I think it's possible
link |
but I think it's less than a 50% chance
link |
so I felt safe making that bet
link |
you had an interesting point
link |
correct me if I'm wrong that's a dark one
link |
that should perhaps
link |
help people appreciate Elon Musk
link |
in this particular
link |
SpaceX seems to be
link |
humans on Mars by 2030
link |
so if something happens to Elon
link |
and this is in contrast to the other
link |
$10,000 bet I made
link |
kind of recently and that was
link |
driving cars at like a level 5
link |
running around cities
link |
and people have kind of nitpicked that
link |
that we probably don't mean exactly level 5
link |
but the guy I'm having the bet with
link |
is we're going to be
link |
we know what we mean about this
link |
yeah, coding horror
link |
yeah I mean it's just
link |
he doesn't think that people are going to be riding around
link |
in robo taxis in 2030
link |
in major cities just
link |
like you take an Uber now
link |
and the difference is everybody looks at this
link |
it's like oh but Tesla's been wrong
link |
they've been promising it for years
link |
and it's not here yet
link |
and the reason this is different
link |
than the bet with Mars
link |
more than is comfortable a bet on
link |
and he is really going to move heaven and earth
link |
to try to make that happen
link |
and perhaps not even SpaceX
link |
yeah because if Elon went away
link |
and SpaceX went public
link |
and got a board of directors
link |
there are more profitable things they could be doing
link |
than focusing on human
link |
so this really is a sort of personal thing there
link |
contrast with that self driving cars
link |
have a dozen credible
link |
companies working really hard
link |
yes it's going slower than most people
link |
betting against that is a bet against almost
link |
the entire world in terms of
link |
all of these companies that have all of these
link |
incentives it's not just
link |
you know one guy's passion project
link |
and I do think that it is solvable
link |
although there's I recognize it's not a hundred percent chance
link |
because it's possible
link |
the long tail of self driving problems winds up
link |
being an AGI complete problem
link |
I think there's plenty of value to
link |
mine out of it with narrow AI
link |
and I think that it's you know it's going to happen
link |
probably more so than people expect
link |
but it's that whole sigmoid
link |
curve where you over you know
link |
you overestimate the near term progress
link |
you underestimate the long term progress
link |
and I think self driving is going to be like
link |
that and I think 2030 still
link |
yeah unfortunately
link |
is safety critical
link |
if you don't do it well
link |
but the other side of that is people are terrible drivers
link |
so it is not going to be
link |
that's probably going to be the argument that gets it through
link |
is like we can save
link |
10,000 lives a year
link |
by taking imperfect self driving
link |
cars and letting them take over a lot
link |
of driving responsibilities
link |
it's like was it 30,000 people a year
link |
die in auto accidents right now in America
link |
and a lot of those are
link |
preventable and the problem is you'll have
link |
people that every time a Tesla
link |
crashes into something you've got a bunch of people
link |
that literally have vested interest
link |
shorting Tesla to come out and make it the
link |
worst thing in the world and people
link |
will be fighting against that but
link |
optimist in me again I think that
link |
we will have systems that are statistically
link |
safer than human drivers
link |
and we will be saving
link |
thousands and thousands of lives
link |
every year when we can hand over
link |
more of those responsibilities to it
link |
I do still think as a person
link |
who studied this problem very deeply
link |
from a human side as well
link |
it's still an open problem
link |
how good slash bad
link |
humans are driving
link |
it's a kind of funny
link |
thing we say about each other oh humans
link |
everybody except you
link |
of course like we think we're good at driving
link |
after really studying it
link |
I think you start to notice
link |
you know because I watched
link |
hundreds of hours of humans
link |
driving the projects of this kind of
link |
thing you've noticed that
link |
even with the distraction
link |
even with everything else humans are
link |
some incredible things
link |
with the attention even when you're
link |
just looking at the smartphone just to get
link |
cues from the environment to make
link |
less seconds decisions
link |
to use instinctual
link |
type of decisions that actually save
link |
your ass time and time and time again
link |
are able to do that
link |
with so much uncertainty around you
link |
in such tricky dynamic environments
link |
I don't know exactly
link |
to beat that kind of
link |
skill of common sense reasoning
link |
so this is one of those interesting
link |
things that there have been a lot of studies about
link |
how experts in their field
link |
usually underestimate the
link |
progress that's going to happen
link |
because an expert thinks about all the
link |
problems they deal with and they're like
link |
damn I'm going to have a hard time solving
link |
all of this and they filter out the fact
link |
that they are one expert in a field of
link |
thousands and you know
link |
you think about yeah I can't do all of that
link |
and you sometimes forget about the scope of
link |
the ecosystem that you're embedded in
link |
and if you think back eight years
link |
very specifically the state of AI
link |
and machine learning where
link |
we had just gotten resnets probably
link |
at that point and you look at all
link |
of the amazing magical things
link |
that have happened in eight years
link |
and they do kind of seem to be happening
link |
a little faster in recent years also
link |
and you project that eight more years
link |
into the future where again
link |
I think there's a 50% chance we're going to
link |
have signs of life of AGI
link |
which we can put through driver's
link |
ed if we need to to actually build
link |
self driving cars and I think that
link |
the narrow systems are going to
link |
have real value demonstrated well before
link |
that there's a lot of life in AGI
link |
you've mentioned that
link |
you're one of the most
link |
brilliant people on this earth you could be
link |
solving a number of different
link |
problems as you've mentioned
link |
your mind was attracted to nuclear energy
link |
obviously virtual reality
link |
with the metaverse is something you could have
link |
a tremendous impact on so I do want to say
link |
a quick thing about nuclear energy where
link |
I you know this is something that
link |
precisely feels like aerospace
link |
before SpaceX where
link |
from everything that I know about all of these
link |
I am the physics of this
link |
stuff hasn't changed and
link |
the reasons why things are expensive
link |
now are not fundamental
link |
should be going into I
link |
really hard Elon musk
link |
vision economical vision not
link |
fusion is the kind of the
link |
darling of people that want to go and do
link |
nuclear because it doesn't have
link |
the taint that fission has in a lot of people's
link |
it's an almost absurdly complex thing
link |
where nuclear fusion
link |
as you look at the Tokamax
link |
or any of the things that people are building and it's
link |
doing all of this infrastructure
link |
just at the end of the day to make something
link |
hot to that you can then
link |
turn into energy through a conventional
link |
power plant and all of that
link |
work which we think we've got line of sight
link |
on but even if it comes out
link |
then you have to do all of that
link |
immensely complex expensive stuff
link |
just to make something hot where
link |
nuclear fission is basically you put these two
link |
rocks together and they get hot all
link |
by themselves that is just
link |
that much simpler it's just
link |
orders of magnitude simpler
link |
and the actual rocks the refined uranium
link |
is not very expensive it's
link |
a couple percent of the cost
link |
of electricity that's why I made that point
link |
where you could have something which was
link |
five times less efficient
link |
than current systems
link |
and if the rest of the plant was a whole much cheaper
link |
you could still be super super
link |
valuable so how much of
link |
the pie do you think
link |
by nuclear energy by fission
link |
so how much could it
link |
become the primary source of energy on earth
link |
it could be most of it
link |
like the reserves of uranium as it stands now
link |
could not power the whole earth but
link |
I am you know you get into breeder reactors
link |
and thorium and things like that
link |
that you do for conventional fission
link |
there is enough for everything
link |
photovoltaic has been amazing
link |
one of my current projects is working on an
link |
off grid system and it's been fun just
link |
kind of again putting my hands on all the
link |
stripping the wires and wiring things together
link |
and doing all of that and just having followed
link |
that a little bit from the outside
link |
over the last couple decades
link |
there's been semiconductor like magical
link |
progress in what's going on there
link |
so I'm all for all of that
link |
but it doesn't solve everything and nuclear
link |
really still does seem like
link |
the smart money bet for what you should be
link |
getting for baseband on a lot of things
link |
and solar may be cheaper for
link |
you know peaking over air conditioning loads
link |
during the the summer and things that you
link |
can push around in different ways
link |
but it's one of those things that's
link |
it's just strange how
link |
we've had the technology sitting there
link |
but these non technical reasons on the
link |
social optics of it has been
link |
this major forcing function
link |
for something that
link |
you know really should be at the cornerstone
link |
of all of the world's concerns
link |
with energy it's interesting
link |
how the non technical factors
link |
have really dominated something that is
link |
kind of the existence of the human race as we
link |
and much of the troubles of the world including
link |
wars in different parts
link |
of the world like Ukraine is energy
link |
yeah it's just sitting right there to be solved
link |
I mean to me personally I think
link |
it's clear that if AGI would
link |
be achieved that would change the course
link |
of human history so AGI
link |
I was making this decision about what do I want
link |
VR and I'm still working on VR
link |
regularly I spend a day
link |
a week kind of consulting with
link |
meta and I you know
link |
boss styles me the consulting
link |
CTO is kind of like the Sherlock Holmes
link |
that comes in and consults on
link |
some of the specific tough issues
link |
and I'm still pretty passionate about all
link |
of that but I have been
link |
figuring out how to compartmentalize
link |
and force that into a smaller
link |
box to work on some other things
link |
and I did come down to this decision between
link |
economical nuclear fission or
link |
artificial general intelligence
link |
and the fission side of things
link |
I've got a bunch of interesting things
link |
going that way but
link |
it would take that would be a fairly big
link |
project thing to do I don't think
link |
it needs to be as big as people expect
link |
I do think something original space
link |
you build it power your building off of it
link |
and then the government I think will come
link |
around to what you need to
link |
is everybody loves an existence proof
link |
I think it's possible somebody should be
link |
doing this but it's going to involve
link |
some politics it's going to involve
link |
decent sized teams and a bunch of this
link |
cross functional stuff that I don't love
link |
while the artificial
link |
general intelligence side of things
link |
it seems to me like this is
link |
the highest leverage
link |
moment for potentially
link |
a single individual potentially
link |
in the history of the world where
link |
the things that we know about
link |
the brain about what we can do
link |
with artificial intelligence
link |
nobody can say absolutely
link |
on any of these things but
link |
for saying that it is likely
link |
that the code for artificial general
link |
intelligence is going to be
link |
tens of thousands of lines
link |
of code not millions of lines
link |
of code this is code that conceivably
link |
one individual could
link |
write unlike writing a new web browser
link |
and based on the progress
link |
that AI has machine
link |
learning has made in the recent decade
link |
it's likely that the
link |
important things that we don't know
link |
are relatively simple there's
link |
probably a handful of things
link |
and my bet is that
link |
I think there's less than
link |
six key insights that need
link |
to be made each one of them can probably
link |
be written on the back of an envelope
link |
we don't know what they are but when
link |
they're put together in concert with
link |
GPUs at scale and the data
link |
that we all have access to
link |
that we can make something that behaves
link |
like a human being
link |
or like a living creature
link |
and that can then be educated
link |
in whatever ways that we need to get to the point
link |
universal remote workers where
link |
anything that somebody does
link |
mediated by a computer and doesn't require
link |
physical interaction
link |
that an AGI will be able to do
link |
we can already simulate the
link |
equivalent of the zoom meetings
link |
synthetic deepfakes and whatnot
link |
we can definitely do that
link |
we have superhuman capabilities
link |
on any narrow thing that we can
link |
that we can formalize and make a loss
link |
function for but there's things we don't
link |
know how to do now but I don't
link |
think they are unapproachably
link |
hard now that's incredibly hubristic
link |
to say that it's like
link |
but I think that what I said a couple
link |
years ago is a 50% chance
link |
that somewhere there will be signs of
link |
2030 and I've probably increased
link |
that slightly I may be at
link |
55, 60% now because I do
link |
think there's a little sense of
link |
acceleration there.
link |
So I wonder what the and by the way you also
link |
written that I bet
link |
with hindsight we will find that clear
link |
antecedents of all the critical
link |
remaining steps for AGI
link |
are already buried somewhere
link |
in the vast literature of today so the ideas
link |
are already there.
link |
I think that's likely the case one of the
link |
things that appeals to so many people
link |
including me about the promise of AGI
link |
we're only drinking from a straw from
link |
the fire hose of all the information
link |
out there I mean you look at
link |
just in a very narrowly
link |
bounded field like machine learning like
link |
you can't read all the papers that come out
link |
all the time you can't go back and read
link |
all the clever things that people did
link |
in the 90s or earlier that people have
link |
forgotten about because they didn't pan out
link |
all the time when they were trying to do them
link |
so that this idea that
link |
yeah I think there are gems
link |
buried in some of the older literature
link |
that was not the path taken by everything
link |
and you can see a kind of herd
link |
mentality on the things that happen right
link |
now it's almost funny to see
link |
like oh Google does something and open AI
link |
does something meta does something and
link |
you know they're the same people that all
link |
talk to each other and they all one up in
link |
each other and they're all capable of
link |
each other's work given a month
link |
or two after somebody has an announcement
link |
of that but there's
link |
a whole world of possible
link |
approaches to machine learning
link |
we probably will in hindsight go back and see
link |
it's like yeah that was kind of clearly
link |
predicted by this early paper
link |
here you know and this turns out
link |
that if you do this and this and take this result
link |
from animal training
link |
and this thing from neuroscience over here
link |
and put it together and set
link |
up this curriculum for them to learn in
link |
that that's kind of what it took
link |
you don't have too many people
link |
now that are still saying it's not
link |
possible or it's going to take hundreds of years
link |
and 10 years ago you would get
link |
you would collect get a collection of experts
link |
and you would have a decent chunk on the margin
link |
that either say not possible
link |
or a couple hundred years
link |
might be centuries and the median
link |
estimate would be like
link |
50 70 years and it's been
link |
coming down and I know with me saying
link |
eight years for something that still puts me
link |
on the optimistic side but it's not
link |
crazy out in the fringes
link |
and just being able to look at that
link |
at a meta level about the trend
link |
predictions going down there
link |
the idea that something could
link |
be happening relatively soon
link |
I do not believe in fast takeoffs
link |
that's one of the safety issues that people say
link |
it's like oh it's going to go boom and the AI
link |
is going to take over the world
link |
and that's one of the reasons I don't think
link |
that's a credible position
link |
we will go from a point where we start
link |
seeing things that
link |
that credibly look like
link |
look like animals behaviors and
link |
I have a human voice box wired into them
link |
it's like I tried to get Elon to say
link |
it's like you're you're pig in neurolink
link |
give it a human voice box and let it start
link |
learning human words
link |
I think that you know I think animal intelligence
link |
is closer to human intelligence than a lot
link |
and I think that culture and modalities
link |
make the gulf seem a lot bigger than it
link |
actually is there's just that smooth
link |
spectrum of how the brain developed
link |
scaling of different things going on there
link |
cultural modalities of IO
link |
sort of loss in translation conceals a lot
link |
so when you think about
link |
signs of life for AGI
link |
human interpretable signs
link |
so the example I give if we get to the point
link |
where you've got a learning disabled toddler
link |
some kind of real special needs
link |
child that can still
link |
interact with their favorite TV show
link |
and video game and can be
link |
trained and learn in some
link |
appreciably human like way
link |
at that point you can deploy an army
link |
cognitive scientist education
link |
developmental education people
link |
and you've got so many advantages
link |
there unlike real education where you
link |
can do rollbacks and A.B. testing
link |
and you can find a golden path through a curriculum
link |
of different things if you get to that point
link |
learning disabled toddler
link |
it's going to be a done deal
link |
but you think we'll know when we see it
link |
there's been a lot of really interesting
link |
general learning progress from
link |
opening eye a little bit too
link |
that Tesla autopilot deserves
link |
a lot more credit than it's getting
link |
for making progress
link |
on the doing the multitask learning
link |
thing and increasing the number of tasks
link |
and automating that
link |
learning from the edge
link |
discovering the edge cases and learning from the edge cases
link |
that is it's really
link |
approaching from a different angle the general
link |
but the more clear approach
link |
comes from deep mind where you have these
link |
kind of game situations
link |
there but I don't know
link |
people seem to be quite
link |
there will always be people that just won't
link |
believe it and I fundamentally
link |
don't care I mean I don't care
link |
if they don't believe it I
link |
when it starts doing people's jobs
link |
and I mean I don't care about the
link |
philosophical zombie argument at all
link |
absolutely absolutely but will you
link |
do you think you will notice that something
link |
special has happened here
link |
because to me I've been
link |
noticing a lot of special things
link |
I think a lot of credit should go
link |
to deep mind for alpha
link |
that was truly special
link |
self play mechanisms achieve
link |
sort of solve problems that
link |
used to be thought unsolvable
link |
like the game of go
link |
also I mean protein folding
link |
starting to get into that space
link |
where learning is doing
link |
at first it wasn't
link |
end to end learning
link |
now it's end to end learning
link |
of a very difficult previously thought
link |
unsolvable problem of protein folding
link |
where do you think
link |
would be a really magical
link |
there have been incredible things happening
link |
in recent years like you say all of the
link |
things from deep mind and open AI
link |
that have been huge show piece
link |
things but when you really get down to it
link |
you read the papers and you look at the way
link |
the models are going
link |
it's still like a feed forward
link |
you push something in something comes out
link |
on the end I mean maybe there's
link |
diffusion models or Monte Carlo
link |
tree rollouts and different things going on
link |
but it's not a being
link |
it's not close to a being
link |
that's going through
link |
a lifelong learning process
link |
do you want something that kind
link |
of gives signs of a being
link |
like what's the difference between
link |
a feed forward neural network
link |
fundamentally the brain is a recurrent neural network
link |
generating an action policy
link |
I mean it's implemented on a biological
link |
substrate and it's interesting thinking about
link |
things like that where we know fundamentally
link |
a convolutional neural network or a transformer
link |
those are specialized things that
link |
are very valuable for what we're doing
link |
but it's not the way the brain's doing now
link |
I do think consciousness and AI
link |
in general is a substrate
link |
independent mechanism where
link |
it doesn't have to be implemented the way the brain is
link |
but if you've only got one existence
link |
proof there's certainly some
link |
value in caring about what it says and does
link |
and so the idea that
link |
anything that can be done with a narrow
link |
AI that you can quantify up a
link |
loss function for a reward mechanism
link |
you're almost certainly going to be able
link |
to produce something that's more
link |
resource effective to train and deploy
link |
and use in an inference mode
link |
you know train a whole lot using an inference
link |
but a living being
link |
is going to be something that's a continuous
link |
lifelong learned task
link |
and while a lot of learning
link |
is really important too and the
link |
so memory is a big weird part
link |
of that puzzle. We've got
link |
again I have all the respect in the world
link |
for the amazing things that are being done
link |
now but sometimes they can be taken
link |
a little bit out of context with things
link |
like there's some smoke and
link |
mirrors going on like the GATO
link |
the recent work the multi task learning stuff
link |
you know it's amazing that it's the one
link |
it's one model that plays all
link |
the Atari games I am as well
link |
as doing all these other things
link |
but I of course it didn't learn
link |
to do all of those it was instructed
link |
in doing that by other reinforcement
link |
learners going through and doing that
link |
and even in the case of all the games
link |
it's still going with a specific
link |
hand coded reward function
link |
in each of those Atari games
link |
where it's not that you know how does it
link |
it just wants to spend its summer afternoon
link |
playing Atari because that's the most interesting
link |
thing for it so it's again not
link |
a general it's not learning the way
link |
humans learn and there's
link |
I believe a lot of things that are
link |
challenging to make a loss function
link |
for that you can train through
link |
these existing conventional things
link |
we're going to chip away at all the things
link |
that people do I am
link |
that we can turn into narrow
link |
billions of probably trillions of
link |
dollars of value are going to be created
link |
by that but there's still going to be
link |
a set of things and we've got questionable
link |
cases like the self driving car
link |
where it's possible it's
link |
not my bet but it's plausible
link |
that the long tail could be problematic
link |
enough that that really does require
link |
a full on artificial general intelligence
link |
I am the counter argument
link |
is that data solves almost everything
link |
is an interpolation problem if you have enough
link |
data and Tesla may be able to get
link |
enough data from all
link |
their deployed stuff to be able to work like
link |
that but maybe not and
link |
there are all the other problems about like say
link |
you want to have a strategy meeting
link |
and you want to go ahead and bring in all
link |
the remote workers and your consultants
link |
and you want a world where some of those
link |
could be AIs that are
link |
you know that are talking and interacting
link |
with you in an area
link |
that is too murky to have a crisp loss
link |
function but they still have
link |
things that on some level they're
link |
rewarded on some internal level
link |
for building a valuable to humans
link |
and ability to interact with things
link |
that self driving car
link |
solving that problem will take us very far
link |
towards AGI you might not need AGI
link |
autopilot is doing
link |
Waymo, so some of the other
link |
companies I think Waymo leads the way
link |
there is also really
link |
interesting but they don't have quite as ambitious
link |
of an effort in terms of
link |
sort of data hungry
link |
approach to driving which I think
link |
is very close to the kind of thing that would
link |
towards AGI. Yeah and it's a funny thing
link |
because as far as I can tell
link |
Elon is completely serious about all of his
link |
concerns about AGI
link |
being an existential threat and
link |
I tried to draw him out to talk about AI
link |
and he just didn't want to
link |
I get that little fatalistic sense from him
link |
and it's weird because his company
link |
could very well be the leading company
link |
leading towards a lot of that where
link |
Tesla being a super pragmatic company
link |
that's doing things because
link |
they really want to solve this actual problem
link |
it's a different vibe than the research
link |
oriented companies where
link |
it's a great time to be an AI researcher
link |
you've got your pick of trillion dollar companies
link |
that will pay you to kind of work on the problems
link |
you're interested in but that's not
link |
necessarily driving hard towards
link |
the core problem of
link |
AGI as something that's going to produce
link |
a lot of value by doing things that
link |
you know that people currently do
link |
or would like to do.
link |
I have a million questions to you
link |
about your ideas about
link |
AGI but do you think
link |
it needs to be embodied
link |
do you think it needs to have a body
link |
notice the signs of life
link |
to develop the kind of system that's
link |
perceive the world in the way that an AGI
link |
should and act in the world
link |
so should we be thinking about robots
link |
or can this be achieved in a
link |
purely digital system?
link |
What's your opinion on that and that's
link |
that no it does not need
link |
to be embodied in the physical world
link |
where you could say most of my
link |
career is about making simulated
link |
virtual worlds in games
link |
or virtual reality and so
link |
on a fundamental level I believe that
link |
you can make a simulated environment that provides
link |
much of the value of what the real
link |
environment does and restricting
link |
yourself to operating
link |
at real time in the physical world with
link |
physical objects I think is an enormous
link |
handicap I mean that's one
link |
of the real lessons driven home by all my
link |
aerospace work is that
link |
reality is a bitch in so many ways there
link |
we're dealing with all the mechanical components
link |
like everything fails, Murphy's law
link |
even if you've done it right before on your fifth one
link |
it might come out differently
link |
so yeah I think that
link |
is all in on the embodied aspect of it
link |
they are tying a huge weight
link |
to their ankles and I think
link |
count them out anybody that's making that a cornerstone
link |
of their belief about it I would almost write
link |
them off as being worried about them
link |
getting to AGI first
link |
I was very surprised that Elon's big on
link |
the humanoid robots
link |
I mean like the NASA Robonaut stuff was always
link |
like what are you doing people?
link |
Well that's very interesting because he has a very pragmatic
link |
view of that that's just
link |
a way to solve a particular problem
link |
in a factory. Now I do think that
link |
once you have an AGI
link |
robotic bodies, humanoid bodies are going to be
link |
enormously valuable I just don't think
link |
they're helpful getting to AGI
link |
Well he has a very sort of practical view
link |
which I disagree with and I argue with him
link |
but it's a practical view that
link |
there's you know you could
link |
transfer the problem of
link |
driving to the problem of
link |
robotic manipulation
link |
because so much of it is perception
link |
and it's just a different context
link |
and so you can apply all the same
link |
kind of data engine
link |
learning processes to a
link |
different environment and so why not
link |
apply it to the humanoid robot environment
link |
I do think that there's a certain
link |
That may be the thing that finally convinces people
link |
but again I don't really care
link |
that much about convincing people
link |
but the world that I'm looking towards
link |
you go to the website and say
link |
I want five Frank 1As to
link |
work on my team today and they all spin up
link |
and they start showing up in your Zoom meetings
link |
to push back but also
link |
to agree with you but first to push back
link |
I do think you need to convince people
link |
for them to welcome that thing
link |
I think there's enough businesses that operate
link |
on an objective kind of profit
link |
loss sort of basis that
link |
I mean if you look at how many things
link |
again talking about the world as
link |
an evolutionary space there
link |
when you do have free markets and you have
link |
you're going to have people that are going to be willing to go out and try
link |
whatever crazy things
link |
and when it proves to be beneficial
link |
you know there's fast followers in all sorts of
link |
Yeah and you're saying that
link |
is a kind of embodiment but just in
link |
a digital world and if you're able to
link |
if you're able to do something productive in that kind
link |
of digital reality
link |
need to have a body. Yeah it's like one of the really
link |
practical technical questions that I kind
link |
of keep arguing with myself over
link |
if you're doing a training
link |
and learning and you've got like you can
link |
watch Sesame Street you can play master system
link |
games or something is it enough
link |
to have just a video feed that
link |
is that video coming in
link |
or should it literally be on
link |
a virtual TV set in a virtual room
link |
even if it's a simple room
link |
just to have that sense of
link |
you're looking at a 2D projection on a screen
link |
versus having the screen beamed directly
link |
into your retinas and
link |
I think it's possible
link |
to maybe get past some of these signs
link |
of life of things with the
link |
just kind of projected directly into the receptor
link |
fields but eventually
link |
kind of human emotional connection
link |
for things probably having
link |
some VR room with a lot of screens
link |
in it for the AI to be learning in
link |
it may be a world of different AIs
link |
interacting with each other. That self play I do think
link |
is one of the critical things where
link |
socialization wise one of the other limitations
link |
I set for myself thinking about
link |
something that is at least
link |
potentially real time because
link |
I want it's nice you can always slow down
link |
time you can run on a subscale
link |
system and test an algorithm
link |
at some lower level and if you've got
link |
extra horsepower running it faster than real time
link |
is a great thing but
link |
I want to be able to
link |
either socially interact with each other
link |
or critically with actual
link |
people you're sort of child development psychiatrist
link |
interacts and does the good boy, bad boy
link |
as they're going through and exploring different things
link |
I come back to the value of
link |
constraints in a lot of ways and if I say
link |
well one of my constraints is real time
link |
operation I mean it might still be
link |
a huge data center full of
link |
computers but it should be
link |
able to interact on a zoom meeting
link |
with people and that's how you also do
link |
start convincing people even if it's not
link |
a robot body moving around which eventually
link |
gets to irrefutable levels
link |
but if you can go ahead and
link |
not just type back and forth to a GPT
link |
bot on something but
link |
you're literally talking to them
link |
embodied over zoom form
link |
and working through problems
link |
with them or exploring situations
link |
having conversations
link |
that are fully stateful and learned
link |
that's a valuable thing so I do keep
link |
all of my eyes on things that
link |
can be implemented within sort of that
link |
30 frames per second
link |
kind of work and I think that's feasible
link |
Do you think the most compelling experience
link |
is that it first will be
link |
or for business as they ask in airports
link |
if it's interacting with
link |
sort of like friends
link |
almost like a therapist or whatever
link |
that kind of interaction
link |
or is it in the business setting something
link |
like you said brainstorming different ideas
link |
this is all a different formulation of
link |
a kind of a touring test or the spirit
link |
of the original touring test where do you think
link |
the biggest benefit will first come
link |
So it's going to start off hugely expensive
link |
I mean you're going to
link |
we're still all guessing about
link |
what compute is going to be necessary
link |
I fall on the side of I don't think
link |
you run the numbers and you're like 86 billion neurons
link |
100 trillion synapses
link |
I don't think those all need to be weights
link |
I don't think we need models that are quite that big
link |
we've got reasonable estimates
link |
of what some parts of the brain do
link |
we don't have the neocortex formula
link |
but we kind of get some of the other sensory
link |
processing and it doesn't feel like
link |
we need to we can simulate that in computers
link |
for less weights but still
link |
it's probably going to be
link |
depending on how it's implemented that might give you
link |
sort of a clan of 128
link |
run in batch people
link |
depending on whether they're sparsity in the way
link |
the weights and things are set up
link |
if it is a reasonably dense thing
link |
then just the memory bandwidth tradeoffs
link |
means you get 128 of them at the same time
link |
all feeding together learning in parallel
link |
or kind of all running together
link |
I kind of talking to a bunch of people
link |
but still if you've got thousands of GPUs
link |
necessary to run these
link |
things it's going to be kind of
link |
expensive where it might start
link |
off a thousand dollars
link |
an hour for your even post
link |
development or something for that
link |
which would be something that you would only use
link |
something where you think they're going to help you make
link |
a strategic decision or point out something
link |
super important but I also
link |
am completely confident
link |
that we will have another factor
link |
of a thousand in cost performance
link |
not in general computing necessarily
link |
but there's so much more that we can do
link |
with packaging, making those right tradeoffs
link |
all those same types of things that
link |
in the next couple of decades
link |
thousand X easy and then you're down to a dollar an hour
link |
then you're kind of like well
link |
I should have an entourage of AIs
link |
that are following me around
link |
helping me out on anything that I want them to do
link |
that's one interesting trajectory
link |
but I'll push back
link |
with a thousand dollars
link |
it should actually provide some value
link |
I think it's easier
link |
that will take us towards AGI
link |
to just have a friend
link |
I think there's an ocean of loneliness
link |
and I think an effective friend
link |
that doesn't have to be perfect
link |
that doesn't have to be intelligent
link |
having emotional intelligence
link |
having ability to remember things
link |
having ability to listen
link |
most of us don't listen to each other
link |
one of the things that love
link |
and when you care about somebody
link |
when you love somebody is when you listen
link |
and that is something we treasure about each other
link |
if an AI can do that kind of thing
link |
provides a huge amount of value
link |
and very importantly
link |
provides value in its ability
link |
versus provide really good advice
link |
I think providing really good advice
link |
is another next level
link |
easier to do companionship
link |
I wouldn't disagree
link |
I think that there's very few things
link |
that I would argue can't be reduced
link |
to some kind of a narrow
link |
a trillion dollars of value easily
link |
and all the things that can be done there
link |
and a lot of it can be done with smoke and mirrors
link |
without having to go the whole thing
link |
there's going to be the equivalent of the Doom
link |
for the AGI that's
link |
not really AGI, it's all smoke and mirrors
link |
but it happens to do another valuable things
link |
that it's enormously useful
link |
and valuable to people
link |
but at some point you do want to get to the point
link |
where you have the fully general thing
link |
and you stop making bespoke specialized systems
link |
for each thing and you wind up
link |
start using the higher level language
link |
instead of writing everything in assembly language
link |
what about consciousness
link |
what do you think that's
link |
or is it a quirk of human
link |
so I think most of the arguments
link |
about consciousness don't have a whole
link |
I think that consciousness is kind of
link |
the way the brain feels when it's operating
link |
I do generally subscribe
link |
to sort of the pandemonium theories of consciousness
link |
where there's all these things bubbling around
link |
and I think of them as
link |
kind of slightly randomized
link |
sparse distributed memory bit strings of things
link |
that are kind of happening
link |
recalling different associative memories
link |
and eventually you get some level of consensus
link |
and it bubbles up to the point of being a conscious
link |
there's a little bit of stochasticity
link |
that are sitting on in this
link |
as it cycles between different things
link |
and recalls different memory
link |
that's largely our imagination and creativity
link |
there's anything deeply magical
link |
about it certainly not symbolic
link |
I think it is generally the flow of these
link |
drawn up with stochastic
link |
noise overlaid on top of them
link |
I think so much of that is
link |
like it depends on what you happen to have
link |
a view as some other thought was occurring
link |
to you that overlay and blend
link |
into the next key that queries your memory
link |
for things and that kind of determines
link |
how your chain of consciousness
link |
goes so that's kind
link |
of the quality of the subjective
link |
experience of it is not
link |
is not essential for intelligence
link |
I don't think so I don't think there's anything really important
link |
there what about some other
link |
human qualities like fear of mortality
link |
and stuff like that like
link |
the fact that this ride ends
link |
important like you
link |
talk so much about this conversation
link |
about the value of deadlines and constraints
link |
do you think that's important
link |
for intelligence? That's actually a super
link |
interesting angle that I don't usually
link |
take on that about has death being
link |
a deadline that forces you to make better decisions
link |
because I have heard people
link |
talk about how if you have immortality
link |
people are going to stop trying
link |
and working on things because they've got all the time
link |
but I would say that
link |
I don't expect it to be
link |
a super critical thing
link |
that a sense of mortality
link |
and death impending death is
link |
necessary there because those are things that
link |
they do wind up providing reward signals
link |
to us and we will be in control of the
link |
reward signals and there will have
link |
to be something fundamental that causes
link |
that engenders curiosity and goal
link |
setting and all of that
link |
something is going to play in there
link |
at the reward level
link |
whether it's positive or negative
link |
have any strong opinions
link |
on exactly what it's going to be
link |
but that's that type of thing
link |
that might be one of those half dozen key
link |
things that has to be sorted out on exactly
link |
what the master reward
link |
that's the meta reward overall of the
link |
local task specific rewards
link |
have to be. That could be that big
link |
negative reward of death
link |
maybe not death but ability
link |
to walk away from an interaction
link |
when people treat AI systems like
link |
it doesn't bother me but I mean
link |
it really is drawing
link |
between what an AI system could be
link |
it's limiting the possibility what an AI system
link |
could be is treating them as justice tools
link |
now that's of course
link |
from a narrow AI perspective
link |
problems that narrow AI
link |
I could solve just like you said
link |
in its form of a tool
link |
but it could also be
link |
which is much more than a tool and
link |
you have to respect that thing for being
link |
a being and for that
link |
it has to be able to have
link |
decisions to walk away to say
link |
I had enough of you I would like to break up
link |
not treated me well and I would like to
link |
I think that actually
link |
a couple of things on that so on the one hand
link |
it is kind of disturbing when you see
link |
people being like people that are mean to
link |
robots and you know mean to Alexa
link |
whatever and that seems
link |
to speak badly about humanity
link |
but there's also the exact opposite
link |
side of that where you have so many people that
link |
inanimate objects or things that are toys
link |
or that are relatively limited
link |
so I think there may even be
link |
more danger about people putting more
link |
emotional investment into a lot of these
link |
proto AIs in different ways
link |
AI would manipulate that
link |
but as far as like the AI
link |
ethnic sides of things
link |
I really stay away
link |
from any of those discussions or even
link |
really thinking about it it's
link |
similar with the safety things where I think
link |
it's just premature and there's a certain
link |
class of people that enjoy
link |
thinking about impractical things
link |
things are not in the world
link |
you know of pragmatic effect around
link |
you and I think that
link |
again because I don't think
link |
there's going to be a fast takeoff I think we actually
link |
will have time to have these debates
link |
when we know the shape of what we're debating
link |
and some people do take a
link |
principled approach that they think it's going to go too
link |
fast that you really do need to get ahead of it
link |
that you need to be thinking about this because
link |
we have slow processes of coming
link |
to any kind of consensus or even coming
link |
up with ideas about this
link |
I wouldn't put any of my money or funding
link |
into something like that because
link |
I don't think it's a problem yet
link |
and I think that we will have these signs
link |
of life when we've got our learning
link |
disabled toddler we should really start
link |
talking about some of the safety and ethics
link |
issues but probably not before
link |
then can you elaborate
link |
briefly about why you don't think there'll
link |
be a fast takeoff is there
link |
some deep intuition you have about it
link |
does it because it's grounded in the physical
link |
world or why yeah so
link |
it is my belief that we're going to start
link |
off with something that requires thousands
link |
I don't know if you've tried to go get
link |
a thousand GPU instance on a cloud
link |
anytime recently but these are not
link |
things that you can just go spin up
link |
there are real challenges to
link |
I mean these things are going to take data centers
link |
and data centers take years to build
link |
you know and the last few years
link |
we've seen a few of them kind of coming up
link |
going in different places they're big engineering
link |
efforts you can hear people
link |
bemoan about the fact that I
link |
know that the network was wired
link |
all wrong and it took them a month to go
link |
unwire it and rewire it the right way
link |
these aren't things that you can just magic
link |
into existence and
link |
the ideas of I am like the old
link |
tropes about it's going to escape on the internet
link |
and take over other systems
link |
there's the fast takeoff ones are clearly
link |
nonsense because you just can't open TCP
link |
connections above a certain rate no matter
link |
how smart you are even if you have perfect
link |
hacking ability that take over the world
link |
in an instant sort of thing just
link |
isn't plausible at all and
link |
even if you had access to all of the resources
link |
these are going to be
link |
specialized systems where
link |
you're going to wind up with something that is architected
link |
this chip with this interconnect
link |
and it's not just going to be able to be
link |
plopped somewhere else now interestingly
link |
it is going to be something that the entire
link |
code for all of it will easily fit on a thumb drive
link |
that's total spy movie
link |
thriller sorts of things where
link |
you could have hey we crack the secret AGI
link |
and it fits on this thumb drive and anyone
link |
could steal it now they're still going to have to build
link |
the right data center to deploy it
link |
and have the right kind of life experience
link |
curriculum to take it up to the point
link |
where it's valuable but the real core of it
link |
the magic that's going to happen there
link |
is going to be very small
link |
you know it's again tens of thousands of lines
link |
of code not millions of lines of code
link |
it is possible to imagine a world
link |
as you mentioned this spy thriller
link |
if it's just a few lines of code
link |
we can imagine a world where the surface
link |
of computation is growing maybe growing
link |
exponentially meaning
link |
there's you know the
link |
refrigerators start getting a GPU
link |
just every first all
link |
the smartphones the billions of smartphones
link |
which code can spread across the
link |
entirety of the computation surface
link |
any longer have to book
link |
GPU real fundamental
link |
issues there when you start getting down to
link |
taking an actual problem
link |
and putting it on an abstract machine like that
link |
that has not worked out well
link |
in practice and the idea
link |
that there was always
link |
like it's always been easy to come up with ways
link |
to get compute faster
link |
say more flops or more
link |
giga ops or whatever there that's usually
link |
the easy part but you then
link |
have interconnect and then memory
link |
for what goes into it and
link |
when you talk about saying well cell phones
link |
well you're limited to like a 5G connection
link |
or something on that and
link |
if you say how if you take
link |
your your calculation you factor
link |
it across a million
link |
cell phones instead of
link |
a thousand GPUs in a warehouse
link |
you might be able to have some kind of a substrate
link |
like that but it could be operating
link |
one thousandth the speed and so yes
link |
you could get you could have an AGI working there
link |
but it wouldn't be a real time AGI it would be
link |
something that is operating at
link |
really a snail's pace
link |
much much slower than
link |
kind of human level thought for things
link |
I'm not worried about that problem
link |
you're transferring the problem into the
link |
interconnect the communication
link |
the collective intelligence aspect of it
link |
which is extremely difficult as well
link |
I mean it's back to the very earliest days of
link |
supercomputers you still have the
link |
the balance between bandwidth
link |
storage and computation
link |
and sometimes they're easier to get one or the other
link |
but it's been remarkably constant
link |
across all those years that
link |
you still need all three
link |
what do your efforts
link |
to me that you're really
link |
committing to AGI at this
link |
stage what what do you see your life
link |
in the next few months years look like
link |
what what do you hope to achieve
link |
I literally just this
link |
week signed a term sheet to
link |
to take some investment money for my company
link |
where the last two years
link |
I had backed off from
link |
META and I was still doing my consulting
link |
CTO role there but
link |
I had styled it as I was going to take
link |
the Victorian gentleman scientist
link |
route where I was going to be
link |
the you know the wealthy person that
link |
was going to go pursue science and learn
link |
about this and do experiments
link |
and honestly I'm surprised there aren't more
link |
people like that that are
link |
like me technical people that
link |
made a bunch of money and are interested
link |
in some of these possibly the
link |
biggest leverage point in human history
link |
I mean I know of I've heard of
link |
a couple organizations that
link |
are basically led by one rich techie guy
link |
that gets a few people around
link |
him to try to work on this
link |
but I'm surprised that there's not more that there aren't
link |
like a dozen of them
link |
I mean maybe people are still
link |
think that it's an unapproachable problem
link |
that it's kind of beyond their ability to
link |
to get a wrench on and have some effect on
link |
like whatever startups they've run before
link |
my kind of like with all the
link |
stuff I've learned whether it's gaming
link |
aerospace whatever I I go
link |
through a larval phase where I'm like okay
link |
I'm sucking up all of this information
link |
trying to see is this something
link |
that I can actually do is this
link |
something that's practical to
link |
devote a large chunk of my life to
link |
and I've gone through that with
link |
the with the AI machine learning
link |
space of things and
link |
and I think I've got my arms
link |
around it I've got the measure of it where
link |
some of the most brilliant people in the
link |
world are working on this problem but
link |
nobody knows exactly the path
link |
that it's going on we're throwing a lot
link |
of things at the wall and seeing what sticks
link |
I you know another interesting thing
link |
just learning about all of this the
link |
contingency of your path to knowledge and
link |
talking about the associations and the context
link |
that you have with them where
link |
people that learn in the same path
link |
will have similar thought processes
link |
and I think it's useful that I come
link |
at this from a different background
link |
different history than the people
link |
that have had the largely academic backgrounds
link |
for this where I have
link |
huge blind spots that they could easily
link |
point out but I have
link |
a different set of experiences in
link |
history and approaches to problems and systems
link |
you know that might turn out to be
link |
useful and I can afford to take that
link |
going to be destitute I am I was
link |
you know I've been I have enough money to fund
link |
myself working on this for the rest
link |
of my life but what I was finding
link |
not committing where I had a foot
link |
firmly in the VR and met a side of things
link |
where in theory I've got
link |
I've got a very nice position there I only
link |
have to work one day a week for my
link |
my consulting role but
link |
but I was engaging every day I'd still
link |
be like my computers there I'd be going
link |
and checking the workplace and notes and
link |
testing different things and communicating with people
link |
but I did make the the decision recently
link |
that no I'm going to get serious
link |
I'm still going to keep my ties
link |
with meta but I am
link |
seriously going for the AGI
link |
side of things and it's actually
link |
a really interesting point because a lot of
link |
the machine learning the AI
link |
community is quite large but
link |
basically almost everybody has taken the same
link |
trajectory through life
link |
in that community and it's so
link |
interesting to have somebody like you
link |
with a fundamentally different trajectory
link |
and that's where the big solutions can
link |
come because there is a kind of silo
link |
bunch of people kind of following the same kind
link |
of set of ideas and I was really worried
link |
that I didn't want to come
link |
off as you know like an arrogant
link |
outsider for things where I have
link |
all the respect in the world for the work
link |
that's you know it's been a miracle decade
link |
we're in the midst of a scientific revolution
link |
happening now and everybody doing
link |
this is I you know these are
link |
the the Einstein's and Bors and whatever
link |
is of our modern era
link |
I am and I was really happy to see
link |
that the the people that I sat down and
link |
talked with everybody does seem to really
link |
be quite great about just happy
link |
to talk about things willing to acknowledge
link |
that we don't know what we're doing we're
link |
figuring it out as we go along
link |
and I mean I've got a you know a huge
link |
I debt on this where
link |
this all really started for me because
link |
Sam Altman basically tried to recruit me to open
link |
a point when I didn't know anything about
link |
what was really going on in
link |
machine learning and in fact it's funny
link |
how the first time you reached out to me
link |
it's like four years ago for your AI
link |
podcast for people
link |
listening to this should know that
link |
first of all obviously
link |
I've been a huge fan of yours for the longest
link |
time but we've agreed to talk like yeah
link |
like four years ago back when this
link |
was called the artificial intelligence podcast
link |
do a thing and you said yes
link |
and I said it's like I don't know anything about
link |
modern AI I said I could kind of take
link |
an angle on machine perception because
link |
you know I'm doing a lot of that with the
link |
sensors and the virtual reality but
link |
we could probably find something to talk about
link |
when did Sam talk to you about open AI
link |
around the same time?
link |
It was a bit after that so
link |
I had done the most basic work
link |
I had kind of done the neural
link |
networks from scratch where I'd gone
link |
and written it all in C just to make sure I
link |
understood back propagation at the
link |
lowest level and my nuts and bolts
link |
approach but after
link |
I was flattering to think that
link |
he thought that I could be useful at
link |
open AI largely for
link |
systems optimization
link |
sorts of things without
link |
being an expert but
link |
I asked Ilya Sutskover
link |
to give me a reading list and he gave
link |
binder full of all the papers that
link |
okay these are the important things
link |
if you really read and understand all of these
link |
you'll know like 80% of what most of the
link |
machine language researchers
link |
work on and I went through and I read
link |
all those papers multiple times and highlighted
link |
them and went through and kind of
link |
figured the things out there and then
link |
started branching out into my own
link |
sets of research on things and
link |
actually started writing my own experiments
link |
and doing kind of figuring out
link |
finding out what I don't know
link |
what the limits of my knowledge are
link |
and starting to get some of my angles of attack
link |
on things the things that I think are a little
link |
bit different from what
link |
people are doing and
link |
I've had a couple years now
link |
like two years since I kind of
link |
left the full time position at meta
link |
kind of pulled the trigger and said
link |
I'm going to get serious about it but
link |
some of my lessons all the way back to Armadillo
link |
space about how I know I need
link |
to be more committed to this where
link |
it's both a freedom and a cost in some ways
link |
when you know that you're wealthy enough to say
link |
it's like this doesn't really mean anything
link |
a million dollars a year for the rest
link |
of my life and it doesn't
link |
mean anything it's fine
link |
but that is an opportunity
link |
to just kind of meander
link |
and I could see that in myself when
link |
I'm doing some things it's like oh this is a kind of
link |
interesting curious thing
link |
let's look at this for a little while let's look at that
link |
it's not really bearing down on the
link |
there's a few things that
link |
that I've done that are kind of tactics
link |
for myself to make me more effective like
link |
one thing I noticed I was not
link |
doing well is I had
link |
a Google cloud account with to get
link |
GPUs there and I was finding I was very
link |
rarely doing that for no good
link |
psychological reasons where I'm like oh
link |
I can always think of something to do other than to
link |
set up instances and run an experiment
link |
I can you know keep working on my local
link |
Titans or something
link |
but it was really stupid I mean it was not
link |
a lot of money I should have been running more
link |
experiments there so I thought to myself
link |
well I'm gonna go buy
link |
a quarter million dollar DGX station
link |
I'm gonna just like sit it right there and it's gonna
link |
mock me if I'm not using it if the fans
link |
aren't running on that thing I'm not
link |
properly utilizing it
link |
and that's been helpful you know I've done a lot
link |
more experiments since then it's been
link |
interesting where I thought I'd be doing all
link |
this low level in the link optimize
link |
stuff but 90% of what I do is just spin up
link |
four instances of an experiment with different
link |
hyper parameters on it
link |
like really sort of building up intuition
link |
by doing ML experiments of different kinds
link |
the next big thing though is
link |
I am you know I decided
link |
that I was gonna take some take some investor
link |
have an overactive sense of responsibility
link |
about other people's money
link |
I am and it's like
link |
a lot of my push and my
link |
passionate in treaties for things that
link |
met are it's like I don't want suck to have wasted
link |
his money investing in Oculus
link |
I want it to work out I want it to change
link |
the world I want it to be worth
link |
all of this time money and effort
link |
going into it and I
link |
expect that it's going to be that like
link |
that with my company
link |
where it's a huge forcing function
link |
this investment investors
link |
that are going to expect something
link |
of me now we've all had the conversation
link |
that this is a low probability
link |
long term bet it's not something
link |
that there's a million things I could do
link |
that I would have line of sight on the value
link |
proposition for this isn't that I think
link |
there are there are unknown unknowns
link |
it's one of these things that it's
link |
it's hyper ball but it's potentially
link |
one of the most important things humans ever
link |
do and it's something that I think is
link |
within our lifetimes if not within
link |
yeah this is just now happening
link |
like term sheet like the ink is barely
link |
virtually barely dry on drying
link |
I mean as I mentioned you're all flying
link |
like somebody I admire and
link |
some of you know Andre Carpathia I think
link |
the two of you different trajectories
link |
in life but approach problems
link |
similarly in that he codes
link |
stuff from scratch up all the time
link |
he's created a bunch of little things
link |
even outside the course at Stanford
link |
that have been tremendously
link |
useful to build up intuition
link |
about stuff but also to
link |
help people and they're all
link |
in the realm of AI
link |
do you see yourself
link |
potentially doing things like this or
link |
not necessarily solving a gigantic
link |
problem but on the journey on the
link |
building up intuitions
link |
or ideas or systems
link |
give inklings of AGI
link |
but also kind of are useful to
link |
people in some way so yeah first of all Andre
link |
is awesome I learned a lot when I was going
link |
through my larval phase from his blog posts
link |
and his Stanford course and
link |
you know super valuable I got to meet him
link |
first a couple years ago when I was
link |
first kind of starting off on
link |
my gentleman scientist bit
link |
a couple months ago when he went out on his sabbatical
link |
he stopped by in Dallas and we talked
link |
for a while and I had
link |
a great time with him and then when I heard he actually left
link |
Tesla I did of course along with a hundred
link |
other people say hey if you
link |
ever want to work with me it would
link |
he thinks that he's going to be doing this educational
link |
work but I think someone's going to make him an offer
link |
he can't refuse before
link |
he gets too far along on it.
link |
His current interest is educational
link |
he's a special mind.
link |
Is there something you could speak to what makes
link |
very much a programmers programmer that was
link |
doing machine learning work rather than
link |
it's a different feel than
link |
an academic where you can see it in
link |
paper sometimes where somebody that's
link |
really a mathematician or a statistician
link |
at heart and they're doing something
link |
with machine learning but
link |
Andre is about getting something done
link |
and you could see it in
link |
all of his earliest approaches to
link |
here's how reinforcement learning works
link |
here's how recurrent neural networks work
link |
here's how transformers work
link |
here's how crypto works
link |
one of his old posts was like a
link |
hacker's guide to machine learning
link |
he deprecated that and said don't really pay
link |
attention to what's in here but
link |
it's that thought that carries through
link |
in a lot of it where
link |
back again to that hacker mentality
link |
and the hacker ethic with what he's doing
link |
and sharing all of it.
link |
Yeah and a lot of his approach to a new thing
link |
like you said larva stage
link |
the simplest possible thing
link |
to build up intuition about it.
link |
Yeah like I say I sketch with structs and things
link |
when I'm just thinking about a problem
link |
I'm thinking in some degree of code.
link |
also among many things a martial
link |
artist both Judo and Jiu Jitsu
link |
how has this helped
link |
make you the person you are?
link |
So I mean I was a competent club player
link |
in Judo and grappling
link |
I mean I was by no means any kind
link |
of a superstar but
link |
I went through a few phases with it
link |
when I was quite young a little bit
link |
more when I was 17
link |
and then I got into it
link |
kind of seriously in my mid 30s
link |
and I went pretty far with it
link |
and I was pretty good
link |
at some of the things that I was doing
link |
and I did appreciate it quite a bit
link |
on the one hand it's always
link |
if you're going to do exercise or something
link |
it's a more motivating form of exercise
link |
and if someone is crushing you
link |
to do something about that
link |
to up your attributes and be better about
link |
getting out of that.
link |
But there's also that sense that
link |
a sports guy I did do wrestling
link |
junior high and I often wish
link |
that I think I would have
link |
been good for me if I'd carried that on
link |
into high school and had a little bit more
link |
of that I mean it's like I
link |
you know felt a little bit of wrestling
link |
vibe with always going on about embracing
link |
the grind and like that push that I
link |
associate with the wrestling team
link |
that I in hindsight
link |
I wish I had gone through that and pushed myself
link |
But even getting back into Judo and Jiu Jitsu
link |
in my mid 30s as usually
link |
man on the mat with that
link |
there was still the
link |
working out with the group
link |
and having the guys that
link |
you're beating each other up with it
link |
but you just feel good
link |
coming out of it and I can remember those
link |
aching in various ways and just thinking
link |
it's like that was really great
link |
it's mixing with a bunch of people that had
link |
nothing to do with any of the things that
link |
I worked with you know every once in a while
link |
someone would be like oh you're the doom guy
link |
and I but for the most part
link |
it was just different slice of life
link |
you know a good thing
link |
and I made the call when I was
link |
40 that's like maybe I'm getting a little old
link |
for this I had separated a rib
link |
and tweaked a few things and I got out
link |
without any really bad injuries
link |
have I dodged enough bullets should I
link |
hang it up I went back
link |
I've gone a couple times
link |
in the last decade trying to get my kids
link |
into it a little bit I didn't really stick
link |
with any of them but it was fun to get
link |
back on the mats I really
link |
hurts for a while when you haven't gone
link |
I gone for a while but
link |
I still debate this
link |
pretty constantly my brother's only a year younger
link |
than me and he's going kind of hard in jujitsu
link |
right now and I you know he was
link |
just he won a few medals at the last
link |
tournament he was at competing
link |
and I was thinking yeah I guess we're
link |
in the executive division if you're over 50
link |
or over 45 or something
link |
not out of the question that I
link |
go back at some point and do some of this
link |
but again I'm just reorganizing my life
link |
probably not going to happen I'm pushing
link |
my exercise around
link |
to give me longer uninterrupted intellectual
link |
focus time pushing it to the beginning
link |
or the end of the game running and stuff like that
link |
walking yeah running
link |
and calisthenics and some things like
link |
that but it allows you to still think about
link |
a problem and but if you're going to a
link |
judo club or something you're you've got to
link |
fix it's going to be seven o clock or whatever
link |
10 o clock on Saturday
link |
although I talked about this a little bit
link |
when I was on Rogan and shortly after
link |
that Carlos Machado did reach out and
link |
I had trained with him for years
link |
back in the day and he was like hey
link |
we've got kind of a small private club
link |
with a bunch of executive type
link |
it gets it does tempt me
link |
yeah I don't know if you know him but
link |
with Gordon Ryan and a few other folks and
link |
he has a very interesting way
link |
very deep systematic way of thinking
link |
about jiu jitsu that
link |
the science of it and I do
link |
think about that more as kind of an older
link |
person considering the martial arts where
link |
I can remember the very earliest
link |
days getting back into judo and I'm like
link |
teach me submissions right now
link |
you know it's like learn the arm bar learn the choke
link |
I but as you get older
link |
you start thinking more about it's like okay
link |
I really do want to like learn the entire
link |
canon of judo it's like aren't all the
link |
different things there and like all the
link |
different approaches for it not just the
link |
you know if you want to compete there's just a
link |
handful of things you learn really really well
link |
but sometimes there's interest in learning a
link |
little bit more of the scope there and
link |
figuring some things out from
link |
you know at one point I had wasn't exactly
link |
a spreadsheet but I did have a
link |
you know a big long text file with like here's
link |
the things that I learned in here like ways
link |
you chain this together and while
link |
when I went back a few years
link |
ago it was good to see that I
link |
I whipped myself back into reasonable shape
link |
about doing the basic grappling but I know
link |
there was a ton of the subtleties that were
link |
just that were gone but could probably be
link |
brought back reasonably quickly
link |
and there's also the benefit I mean
link |
you're exceptionally successful now
link |
and the problem the old problem
link |
I still pushed kind of
link |
harder than I should I mean that was
link |
I was one of those people that I
link |
I'm on the smaller side
link |
for a lot of the people competing
link |
and I would you know I'd go with all the
link |
big guys and I'd go hard and I'd push
link |
myself a lot and that would be
link |
one of those where I would
link |
I you know I'd be dangerous
link |
to anyone for first five minutes but then
link |
sometimes after that I'm already dead
link |
and I knew it was terrible for me because
link |
it made the you know it meant
link |
I got less training time with all of that
link |
when you go and you just gas out
link |
you know relatively quickly there and I
link |
like to think that I would be better
link |
about that where after I gave up
link |
judo I started doing the half marathons
link |
and tough butters and things like that
link |
and so when I did go back to the
link |
local judo kai club I thought
link |
it's like oh I should have better cardio for this
link |
I'm a runner now and I do all of this
link |
and didn't work out that way it was the same
link |
old thing where just push
link |
really hard strain really hard and
link |
and of course when I worked with good guys
link |
like Carlos it's like
link |
just the whole flow like water thing is
link |
real and he's just like that's true with
link |
judo to some of the best people like
link |
I've trained with Olympic gold medalists
link |
and for some reason
link |
with them everything's easier
link |
everything it's you
link |
actually start to feel
link |
the science of it the music
link |
of it the dance of it everything
link |
you understand that there's an art
link |
to it it's not just an exercise
link |
it was interesting where I did
link |
go to the Kodokan in Japan
link |
the birthplace of judo and everything
link |
and I remember I rolled with one old guy
link |
start standing just started on groundwork
link |
and it was striking how
link |
different it was from Carlos he was still
link |
he was better than me and he got my arm
link |
you know I had to tap there but
link |
it was a completely different style
link |
where I just felt like I could do nothing
link |
he was just enveloping me and just like slowly
link |
ground it down put my arm and bent it
link |
you know he's just loose and free and you always
link |
thought like oh you're just gonna go grab something
link |
but never had any chance to do it but it was
link |
very different feeling that's a good summary
link |
of the difference between Jiu Jitsu and judo
link |
and Jiu Jitsu there's it is a dance
link |
and you feel like there's a freedom
link |
anybody I tried like Gordon
link |
Ryan one of the best
link |
grappler in the world
link |
there's a feeling like you can do anything
link |
when you actually try to do something
link |
you can't just magically doesn't work
link |
but with the best judo players in the world
link |
it does feel like there's
link |
a blanket that weighs a thousand
link |
pounds on top of you and
link |
there's not a feeling like you can do anything
link |
you just you're trapped
link |
and that's a style that's a difference
link |
in the style of martial arts
link |
once you start to study you understand it
link |
all has to do with human movement and the
link |
physics of it and the leverage and all that kind of stuff
link |
and that's like that's super fascinating
link |
at the end of the day for me
link |
the biggest benefit is in the humbling
link |
aspect when another human being
link |
kind of tells you that
link |
you know there's a hierarchy
link |
you're not that special
link |
and in the most extreme case when you
link |
tap to a choke you are basically
link |
living because somebody
link |
lets you live and that is
link |
one of those if you think about it that is a
link |
closer brush with mortality than
link |
than most people consider
link |
act is good to take to your
link |
work then where it's harder to get
link |
yeah because nobody's nobody that does any
link |
martial art is coming out thinking I'm the best in the
link |
world at anything because
link |
let me ask you for advice
link |
what advice would you give to young
link |
about life about career
link |
how they can have a job
link |
how they can have an impact
link |
how they can have a life that
link |
so it was kind of fun I got
link |
invited to give the commencement speech back
link |
at the I went to a college
link |
for two semesters and
link |
stopped out and went on to do my tech
link |
stuff but they still wanted me to
link |
come back and give a commencement speech
link |
and I've got that pinned on my
link |
twitter account I still feel good about
link |
everything that I said there
link |
and my biggest point
link |
for me might not be the path for everyone
link |
and in fact the advice
link |
the path that I took and even the advice
link |
that I would give based on my
link |
experience and learnings probably
link |
isn't the best advice for everyone
link |
because what I did was all about
link |
this knowledge in depth it was
link |
about not just having this
link |
surface level ability to make things
link |
do what I want but to really understand
link |
them through and through to let me do
link |
the systems engineering work and sometimes
link |
find these inefficiencies
link |
that can be bypassed
link |
and that the whole
link |
world doesn't need that you know most programmers
link |
don't or engineers of any kind don't
link |
necessarily need to do that they need to do
link |
a little job that's been parceled out
link |
to them be reliable
link |
let people depend on you do quality
link |
work with all of that
link |
but people that do have
link |
an inclination for wanting
link |
to know things deeper
link |
and learn things deeper
link |
you know there are just layers
link |
and layers of things out there
link |
and it's amazing it's if you're
link |
the right person that is excited
link |
the world's never been like this before
link |
it's better than ever I mean everything that was
link |
wonderful for me is still there
link |
and there's whole new worlds to explore
link |
on the different things that you can
link |
you know it's hard work
link |
embrace the grind with it
link |
and understand as much as you can
link |
prepared for opportunities to present themselves
link |
where you can't just
link |
say this is my golden life and just push
link |
at that I mean you might be able to do
link |
that but you're going to make more total progress
link |
if you say I am preparing
link |
myself with this broad set of tools
link |
and then I'm being aware
link |
of all the way things are changing
link |
as I move through the world and as the whole
link |
world changes around me and then looking
link |
for opportunities to deploy the tools
link |
that you've built and
link |
there's going to be more and more of those
link |
types of things there where
link |
an awareness of what's happening
link |
where the inefficiencies are
link |
what things can be done
link |
what's possible versus what's current practice
link |
and then finding those areas where
link |
you can go and make an adjustment
link |
and make something that may
link |
affect millions or billions of people
link |
in the world make it better
link |
when maybe from your own example
link |
how are you able to recognize
link |
this about yourself that you saw
link |
the layers in a particular thing
link |
and you were drawn to
link |
discovering deeper and deeper truths about it
link |
is that something that was obvious
link |
to you that you couldn't help or is there
link |
some actions you had to take to actually
link |
allow yourself to dig deep
link |
so in the earliest days of personal computers
link |
I remember the reference manuals
link |
and the very early ones even had
link |
schematics of computers
link |
in the background in the back
link |
of the books as well as
link |
firmware listings and things and I could look
link |
at that and at that time when I was a
link |
younger teenager I didn't understand
link |
a lot of that stuff how the
link |
different things worked I was
link |
pulling out the information that I could get
link |
but I always wanted to know all of that
link |
there was like kind of
link |
information sitting down there it's like
link |
the elder lore that some gray beard wizard
link |
I'm you know is the keeper of
link |
and so I always felt that pull
link |
for wanting to know more
link |
wanting to explore the
link |
the mysterious areas there
link |
and you know and that followed
link |
right in through all the things that
link |
got the value exploring the video cards
link |
leading to the I'm you know the
link |
scrolling advantages you know exploring
link |
some of the academic papers and things
link |
learning about BSP trees and the different
link |
things that that I could do
link |
I'm you know with those systems and
link |
just that the huge larval
link |
phases going through aerospace just
link |
reading bookshelves full of books
link |
I mean again that point where I have enough money
link |
I can buy all the books I want it was
link |
it was so valuable
link |
where I was terrible with my money
link |
when I was a kid my mom thought I would always be
link |
broke because you know I'd buy my
link |
comic books and just be out of money but
link |
it was like all the pizza I want
link |
all the Diet Coke I want video games
link |
and then books books and it
link |
didn't take that much as I was making
link |
twenty seven K a year I
link |
felt rich and I was just getting all the things
link |
that that I wanted but
link |
that sense of you know that books
link |
have always been magical to me and that was one of the things
link |
that really made me smile is I
link |
Andre had said he found you know when he came
link |
over to my house he said he found my library inspiring
link |
great to see you know I still look at him he's kind of a younger
link |
guy I sometimes wonder if younger
link |
people these days have the same relationship
link |
with books that I do where they were
link |
such a cornerstone for me in so many
link |
ways but that sense that yeah I
link |
always wanted to know it all I know I can't
link |
and that was like one of the last things I said
link |
you know you can't know everything but you
link |
should convince yourself that you can know anything
link |
you know any one particular
link |
thing it was created and discovered
link |
by humans you can learn it you can
link |
find out what you need on there and you
link |
can learn it deeply yeah you
link |
can drive a nail down through whatever
link |
layer cake problem space you've got
link |
and learn a cross section
link |
there and not only can you have an impact
link |
doing that you can just
link |
you can attain happiness doing that
link |
there's something so fulfilling about
link |
becoming a craftsman of a thing
link |
yeah and I don't want to tell people that look
link |
this is a good career move just
link |
you know grit your teeth and you know and bear it
link |
I you know you want people
link |
you wanted and I do think
link |
it is possible sometimes to find the joy
link |
in something like it might not immediately
link |
appeal to you but I had told
link |
people early on like in
link |
software times that I
link |
you know it a lot of game developers
link |
are in it just because they are so passionate
link |
about games but I was always
link |
really more flexible in
link |
what appealed to me where I said
link |
I think I could be quite
link |
engaged doing operating system
link |
work even database work I
link |
would find the interest in that
link |
because I think most things that are
link |
significant in the world have a lot
link |
of layers and complexity to them
link |
and a lot of opportunities hidden within
link |
that would probably be the most important thing to encourage
link |
you can it's like weaponized curiosity
link |
you can deploy your curiosity
link |
to find I to kind of like make
link |
things useful and valuable
link |
to you even if they don't immediately appear
link |
that way deploy your curiosity
link |
yeah that's very true
link |
we've mentioned this debate point
link |
whether mortality or fear
link |
of mortality is fundamental
link |
to creating an AGI
link |
but let's talk about whether it's
link |
fundamental to human beings do you
link |
think about your own mortality
link |
and you probably always
link |
have to like take with a grain of salt
link |
anything somebody says about fundamental things
link |
but I don't think about
link |
impending death legacy with
link |
I with my children things like
link |
that and clearly it seems
link |
most of the world does a lot
link |
a lot more than I do
link |
so I mean I think I'm an outlier
link |
it doesn't wind up being a real part of
link |
my thinking and motivation
link |
about things so daily existence
link |
sort of the people you love
link |
before you I'm very much focused on
link |
what I'm working on right now
link |
I do take that back
link |
there's one aspect where the
link |
kind of finiteness of the life does impact
link |
me and that is about
link |
thinking about the scope of the problems
link |
that I'm working on when I
link |
decided to work on when I was like
link |
nuclear fission or AGI these are
link |
big ticket things that
link |
large fractions of the world
link |
and I was thinking to myself at some level
link |
that okay I mean I may
link |
have a couple more swings
link |
at bat with me at full
link |
capability but yes my
link |
my mental abilities will decay
link |
with age you know mostly inevitably
link |
I don't think it's a 0%
link |
chance that we will address some of that
link |
before it becomes a problem for me I think
link |
exciting medical stuff in the next couple decades
link |
but I do have this
link |
kind of vague plan that when
link |
I'm not at the top of my game and I don't feel that
link |
I'm you know in a position to put a
link |
dent in the world some way that
link |
I'll probably wind up doing some kind of
link |
recreational retro programming or
link |
you know I'll work on some
link |
you know something that I would not
link |
devote my life to now but I can
link |
while away my time as the old man
link |
gardening in the code worlds
link |
to step back even bigger
link |
let me ask you about why we're here
link |
what's the meaning of it all
link |
what's the meaning of life John Carmich
link |
so very similar with that last question
link |
I know a lot of people fret
link |
about this question a lot and I just
link |
biological creatures that
link |
happenstance of evolution
link |
you know we have innate drives
link |
that evolution crafted for
link |
survival and passing on of genetic
link |
find a lot of value in trying to go
link |
much deeper than that I have my motivation
link |
you know some of which are probably genetically coded
link |
many of which are contingent on my
link |
upbringing and the path that I've had through my life
link |
run into like spades of
link |
depression or envy or anything
link |
that winds up being
link |
a challenge and forcing a
link |
degree of soul searching with things like that
link |
you know kind of without that
link |
as a brilliant ant in the ant colony
link |
without looking up to the sky wondering
link |
why the hell am I here again
link |
sky of it the incredible
link |
of the fact that we started
link |
first of all the origin of life on earth
link |
from single cell organisms
link |
the entirety of the evolutionary process
link |
took us somehow to this incredibly intelligent
link |
thing that is able to
link |
build Wolfenstein 3D
link |
and doom and quake and
link |
take a crack at the problem
link |
of AGI and create things that
link |
eventually supersede human beings
link |
it's been my experience that people
link |
that don't focus on the here and now right in
link |
front of them tend to be less effective
link |
I mean it's not 100%
link |
you know vision matters to some
link |
it doesn't seem to be a necessary motivator
link |
for me and I think that
link |
the process of getting there is usually
link |
done against like the magic of gradient descent
link |
people just don't believe
link |
that just looking locally gets you
link |
to all of these spectacular things
link |
that's been you know the decades
link |
really some of the smartest people
link |
in the world that would just push back
link |
forever against this idea that
link |
it's not this grand sophisticated
link |
vision of everything but
link |
little tiny steps local information
link |
winds up leading to all the best answers
link |
so the meaning of life
link |
locally wherever the gradient
link |
this was an incredible conversation
link |
officially the longest conversation
link |
I've ever done on the podcast
link |
which means a lot to me because
link |
I get to do it with one of my heroes
link |
John I can't tell you how much it means to me that
link |
you would sit down with me you're an incredible
link |
I can't wait what you do next but you've already
link |
changed the world you're an inspiration to
link |
so many people and again
link |
we haven't covered like
link |
most of what I was playing to talk
link |
about so I hope we get a chance to talk
link |
some day in the future and I can't wait
link |
to see what you do next thank you so
link |
much again for talking to me thank you very much
link |
thanks for listening to this
link |
conversation with John Carmack
link |
to support this podcast please check out our
link |
sponsors in the description
link |
and now let me leave you with some words
link |
from John Carmack himself
link |
is the real key to success
link |
keep your eyes on the goal
link |
and just keep taking the next step towards
link |
completing it if you aren't sure
link |
which way to do something do it both ways
link |
and see which works better
link |
thank you for listening
link |
and hope to see you next time