Switch Statement

059: Masters of Doom - Ch. 14: Carmack's Master Plan File

April 26, 2024 Jon Bedard
059: Masters of Doom - Ch. 14: Carmack's Master Plan File
Switch Statement
Transcript
Matt:

Hello everyone And welcome to the switch statement podcast It's a podcast for investigations into miscellaneous tech topics

matt_mod_ch_14:

Hey, John, how is it going?

jon_raw:

Hey Matt, it's going pretty well. How are you doing,

matt_mod_ch_14:

I am doing all right. Um, I'm constantly reminded about how little time we have left as

jon_raw:

living beings?

matt_mod_ch_14:

employees. Well, that, well, I mean, you know, one is probably closely followed by the other. I,

jon_raw:

you referring to a earth shattering launch of a new technology?

matt_mod_ch_14:

uh, I am, well, kind of two, you know, two earth shattering launches, literally. At the exact same time, as far as anyone is concerned. Um, but, um, but yeah, this new technology, like AI, I mean, open AI again, just like batting a thousand

jon_raw:

Oh, for real?

matt_mod_ch_14:

game,

jon_raw:

Yeah, no. I am so impressed with OpenAI. So they launched Sora, which is a new model for generating video. And they, all they launched was a simple website where you could scroll down and see the videos that were generated with this model. And it. was incredible.

matt_mod_ch_14:

Unbelievable. Absolutely unbelievable. Like I, you know, I, you know, we both, we've edited videos. Like we are pretty, you know, we have an eye to like, you know, you're super into movies, what have you, but it's like, I don't know about you, but I look at those videos and like, I wouldn't absolutely a hundred percent if I was just scrolling on the internet, never realized that it wasn't, you know, really recorded

jon_raw:

Oh yeah. Oh, for sure. They even have a, had a section on the page, which talked about like the mistakes. Cause it's not a perfect model. It still generates bad stuff sometimes. And there was a video of like a bunch of little dog. Like, uh, puppies, man, I like took me a second to think of that word, but they were all just kind of playing. And every once in a while, like one of them would like split into two dogs. Cause this is something that the model still struggles with is like several similar entities on the screen at once. And even though it was flawed, it was like still amazing.

matt_mod_ch_14:

thing. I think the thing, it was one of those things where sometimes in these AI systems, you will see a An output that like, when you look at the fine details, you, you can acknowledge that it's wrong, but actually like the general perception of it looks perfect, like looks fine. And that was the perfect case where it's like, yeah, you can, uh, you know, abstractly acknowledge that. No, of course these puppies can't be merging and splitting, but like when you look at it. You would almost believe, like if someone told you like, Oh, look at these puppies, like they can merge and split. You like, this is a real recording. Your brain would be like, all right, I guess that's what that would look like.

jon_raw:

yeah. that's what strikes me about some of this AI stuff is it almost feels like this new form. Of like art or entertainment where it's like, like, we already have kind of glitch type artwork. And you know, there's a whole entire culture around like glitches and video games, but I feel like with AI, there's kind of these new glitches that are like so perfect and it's almost like we're discovering, you know, wormholes in, in the reality with dogs sort of doing mitosis.

matt_mod_ch_14:

dude, I'm excited for dog my type says future, but, um, but we should talk about the real content of this episode, which is chapter 14, Silicon Alamo of

jon_raw:

Great title. Yep. To think that the interactive software industry was only 3. 7 billion in 1996. I was just reading that the video game industry alone is projected to reach 200 billion in 2030. So this is like, I mean, this industry has just been growing at an insane pace.

matt_mod_ch_14:

Yeah, no, it's incredible. And like, I don't know, I feel like it's, it's at the point where the numbers lose all, all distinction, but, uh, but yeah, I mean, and I don't know, it's like with the metaverse, I can only imagine it's going to continue to just grow exponentially.

jon_raw:

I think so. So this chapter goes into a lot about, uh, you know, it sort of continues the, the theme of like contrasting Romero's moves after, you know, getting ousted from ID and talking about how care Carmex sort of carries on. They already released quake two. So they're doing good. but they talk about a couple of things that it, that I thought was interesting for one, They saw Half Life, the game that came out of Valve, and they thought it was silly. They were like, Oh this game isn't going to go anywhere. And Half Life was one of the biggest games of all time. So they kind of

matt_mod_ch_14:

Oh yeah. And. funny because I think in the last chapter It kind of indicated Carmack's position that like story doesn't matter and as long as you can add this whiz bang technology Everyone will flock around your game anyway

jon_raw:

Yeah.

matt_mod_ch_14:

But I feel like Half Life is kind of the direct Contradiction of that where it's like yeah, I mean they didn't really add anything from a technical perspective but from a storytelling perspective like It, it redefined the category. I feel like,

jon_raw:

Yeah. No, exactly. And I think you're right that it's sort of a vindication of, it's sort of a vindication of why the team Romero and Carmack work so well. I also just want to call out valve or not, not call them out, but shout them out, I guess, because valve has done such an amazing job of like growing, being a huge company, also being a publishing company, but they still put out like great games, like almost, you know, industry defining games, or at least genre defining games like portal to, they recently put out Alex Half Life, Alex. Which is like an incredible, I mean, if you have a headset and you have not played half life Alex, check it out. Cause it is incredible.

matt_mod_ch_14:

yeah, I had an old, like my, my laptop is just terrible. Uh, and it just cannot do PC VR, but, um, I had this old 10 80 TI just sit collecting dust with no attached PC. So I just bought a. Like they have this like enclosure, Razer sells this thing where you can just stick a GPU into it and then connect it via Thunderbolt to your laptop. Uh, so fingers crossed I'm actually going to be able to do, uh, do PC VR. But,

jon_raw:

Oh man. That's exciting.

matt_mod_ch_14:

but to get back to your point about Valve, there was a very interesting fact here, which is Half Life was, you know, the, the way the book. Tells it like Half Life was built on top of the Quake engine. but my understanding is, sorry, yeah, go for it.

jon_raw:

I did not realize that because I, you know, Half Life 2 is famously built on the Source engine, which is Valve proprietary, that's an engine that they licensed and probably made a tremendous amount of money off of. So I had, I guess, always assumed that Half Life 1 was kind of some precursor to the Source engine.

matt_mod_ch_14:

Well, there's more nuance than this book actually laid out. Valve started with the Quake engine, but they did a ton of proprietary custom, like customizations to create something called GoldSrc.

jon_raw:

Oh,

matt_mod_ch_14:

and, and Halflife was actually made on Gold Source. And then Gold Source became Source and Source two. So, so I, you know, I'm not sure it, it was kind of like, it's probably a ship of thesis sort of thing. But my understanding is Source is kind of actually like a branch off of Quake because they made, they heavily modified the Quake engine to make Gold Source and then they probably took so Gold Source and then like. Turned it into source. So,

jon_raw:

you just blew my mind. That's, that is a great nugget.

matt_mod_ch_14:

yeah, like that's, it's, it's a crazy fact because you just imagine like, oh, you know, valve wrote their engine, but actually it came and went back to it and, and quake. So,

jon_raw:

Wow. That's crazy. I love that.

matt_mod_ch_14:

and this is, this is one of these crazy things about these, like really difficult technologies, like a game engine or like a browser. It's like. No one starts a, no one writes a browser, like no one starts a browser new. They just take an old browser and then they change it. It's like, you, you know, there, there've probably been like two or three brand new browser projects, even though there's like, however many, you know, it's just like someone splinters off and eventually it becomes different enough to be its own browser engine, but, But it's just funny how that works. Cause you like to imagine that like someone could start a browser today, but no one, no one really is doing that.

jon_raw:

yeah, yeah. And it would, it would be a fool's errand. I mean, unless you really, really enjoy developing browsers, it would just be kind of a silly thing to take on.

matt_mod_ch_14:

Right. Exactly.

jon_raw:

Uh, they mentioned the bonus structure at id, which I don't know about you, but just reading about it gave me anxiety. Like they basically talked about how every single quarter they would give They, they had sort of discretionary, you know, money that they could like give out as bonuses to the individuals at ID. And it's like one quarter, you could get like 10, 000 one quarter, you could get 200, 000. So the employees basically developed this like zero sum game style of collaborating, or at least this is what it sounded like to me where, you know, the, the The only way that they could get like a bigger slice of that pie was to kind of distinguish themselves somehow. so anyway, it just, it struck me as the type of thing where it would quickly cause people to like undermine each other or, just cause these kind of bad incentives where it's like, you don't actually want your employees to be behaving this way.

matt_mod_ch_14:

Yeah. I think it's, uh, you know, we've, I feel like we talk about incentives a decent amount, I think it's a really hard problem. Like, how do you, how do you incentivize your employees to. Want to like lift each other up. Like how, like, how do you create a structure so that, you know, cause, cause I, ideally you want to optimize for all of your employees, making the company more profitable in general.

jon_raw:

Yeah.

matt_mod_ch_14:

And, you know, if, if, if at the point at which one employee is sabotaging another employee, it's like, that's like, that's, that's, that's negative sum, right? Because it's like the, um, the whole pie is shrinking. So it's like, even if one person is getting a higher proportion of it, they're actually, you know, everybody's getting less. So, um, I don't know. It's just, it's just a hard problem. I don't have an answer to it,

jon_raw:

Yeah. No, I, we've definitely talked about this very topic before. And I do think. You know, in any software project, collaboration is so, so important. So it's almost like, you know, you definitely want to incentivize individual achievement because a lot of great parts of software are built almost entirely by single individuals. but at the same time, the whole thing needs to be cohesive and work as a whole. So, and, and that's almost more important. Like that's almost the most important thing about software. So you need to find some balance of like incentivizing teamwork. But also incentivizing individuals. And I just think giving out these like huge bonuses every single quarter where some people can get next to nothing and some people get like a massive amount of money that just feels like a recipe to, you know, make people mad at each other, make people resent each other, make people subtly undermine each other in order to get ahead.

matt_mod_ch_14:

How did they like, what the, what were the criteria again for determining how much? Of a bonus someone got,

jon_raw:

my understanding from reading the chapter was they just had a discretionary pile of money and the leads would just decide like Carmack and his, his guys would just pick like, okay, this quarter, you know, Adrian's getting 20 grand and Tim Willits is getting 200 grand

matt_mod_ch_14:

but no, no transparency about like the, the criteria for bonuses or what have you.

jon_raw:

didn't seem that way. I mean, Kushner didn't go into extreme detail on this. So I don't want to like read too much into it, but it, it just, it seemed like it was a unilateral thing that Carmack and, and his buddies just did.

matt_mod_ch_14:

And I mean, I think some of this goes into just general growing pains at a company, like, you know, on both sides, it's like, if you're not really careful about the people that you bring on and they kind of, the culture that you bring maintaining the culture as you're bringing new people on, I think it's very easy to wind up with this just acerbic environment where, like you're saying, people are undercutting one another and backstabbing each other. And it felt, it kind of felt like both people were suffering from, but you know, both Id and Ion Storm were suffering from those issues in this chapter.

jon_raw:

Yeah, this chapter also contains a wealth of just amazing Carmack stuff. Uh, there's a quote from Carmack for any given project, there's an optimal team size. I 1000 percent agree with this. And I think it's. I think it's part of the reason Romero was struggling so much. I think he just had too big of a team.

matt_mod_ch_14:

yeah.

jon_raw:

There's also this plan file. So Carmack is sort of famous for going on these like week long, you know, just Hickey Kimoree type things where he goes off by himself and he does not interact with a single person. He, you know, he codes, he works on the Trinity engine, which was going to be Quake 3's engine. And he'll come back and write these big, long plan files. And this chapter includes a plan file that I thought was like, incredible. Like it just had so many amazing little tidbits. And I feel like we could go into every single one. Like we could basically do an episode just based on this plan file.

matt_mod_ch_14:

yeah. It's so funny because as incredible a programmer as Carmack is, there's a humility to his approach that's like, you know, he's pulling off these amazing one of a kind, he's basically unique in the world of video game programmers,

jon_raw:

Yeah.

matt_mod_ch_14:

and he still has this like, humble approach to like, how he's, Approaching the, the engine and the problem. And, and it's like, man, if you're like, if I feel like cocky engineers just need to read this and be like, okay, are you better than Carmack? If not, like, don't be so full of yourself about all this stuff.

jon_raw:

Oh man, that's so true. And Carmack even says in this plan file that he was constantly surrounding himself with people who were smarter than him. He even mentions Romero. He mentions that originally when he teamed up with Romero, Romero was a better programmer and that's how he got better as he just learned from Romero. But yeah, do you mind if I just rattle off a couple of things that were in this plan file? Cause I thought they were amazing.

matt_mod_ch_14:

Rattle away. You

jon_raw:

So this is basically like his, You know, career and all these great little tidbits that he learned over time. He talks about using structures over parallel arrays, which is just kind of made me laugh because parallel arrays just, um, maybe at one time that was like a good solution for something, but that just feels like such a difficult to maintain, like difficult to work with concept. Uh, he mentions polar coordinates, which I was like, I don't even, I've done a lot of video game programming, programming, and I don't think I've encountered polar coordinates in programming.

matt_mod_ch_14:

I looked up the doom source code and he makes a comment about this. He says. You know, he, I guess in like 1997, he went on, uh, like this kick, he went on like an open source kick and he like uploaded all of the source code to a bunch of these old projects. And in, in the readme for, uh, doom, he's like, there's a bunch of, you know, I wrote this code years ago, five years ago now. And I did a lot of silly things, you know, and then in the parenthetical, he's like, Um, you know, most notably like the polar coordinates. And again, like, I don't know, this, this seems like something that, uh, stuck out to him in his mind as like something that was like naive and wrong about his, his initial approach. but I don't know. I don't know the details of like, I wanted to read more. I didn't get actually into the code, but,

jon_raw:

Yeah. I really want to learn like what, what he was even using them for, because I mean, I'm not that good at math. I don't, there's probably like applications of polar coordinates that I'm just completely unaware of, but it just strikes me as something that I just could not even think of a possible use for

matt_mod_ch_14:

Where his mesh meshes, like expressed in polar coordinates.

jon_raw:

Like that just seems insane. I like, I guess Like maybe polar coordinates could express a relationship, like, you know, like relative to you, I am at so and so angle and I am like five units away from you or something, you know, like that, maybe, but even

matt_mod_ch_14:

I guess in a world where you only have a single axis of rotation for the camera, like polar coordinates is actually something you can pull off.

jon_raw:

Yeah, maybe it's like a more optimized thing, but anyway, maybe we'll, maybe we'll look up the source one day. Uh, he also mentioned risk. Reduced instruction set architectures, which stuck out to me because I took a computer architecture class in college and it was all based on risk systems where we would do, we would write all this assembly code and it was all, you know, the reduced instructions that basically means, you know, there's only like 10 or so assembly instructions, but they're all like hyper, hyper optimized instead of having like, you know, 80, which all have these very like hyper specific purposes. But anyway, that was an awesome, awesome class. Cause it just felt like you really learned about like the nuts and bolts of how computers work. And then the last thing I wanted to mention was radiosity, which was a lighting algorithm. And I couldn't tell if Kermack had come up with radiosity. Like that was unclear to me. Or if he just like implemented a white paper or something, because I remember radiosity being like, like it was almost like a term that a gamer would know. You know, you'd know like, Oh, this game has radiosity in it or something.

matt_mod_ch_14:

Now, radiosity was an approach that allowed you to like bake a lighting result, right?

jon_raw:

Yeah. Like it was basically, it would make your lighting look better and it was cheaper. Um, so you could do like a big scene with a lot of lighting with radiosity. Whereas that was almost impossible on present day hardware.

matt_mod_ch_14:

And I think the trade off is just that it's not dynamic, right? It looks great, but it's, it's all statically, you know, it's, it's pre processed basically.

jon_raw:

That is my understanding. It's a bit, it's a form of baking, but I don't know. I don't know much about radiosity. I just recall it being. A term that even gamers knew, like they would know which games had radiosity in them.

matt_mod_ch_14:

Yeah, yeah, the only, actually, I don't know this from gaming, but very early versions of blender, like if you wanted your renders to look really good and to render much more quickly, you could actually use radiosity in blender. Uh, and if you're seeing didn't have, or like some of your lighting could be static and you could bake these radiosity lights or whatever, and then. You could have a layer on, additional lights on top of that, uh, but,

jon_raw:

Crazy. That's

matt_mod_ch_14:

But I don't know, I think they've just jettisoned, I just don't think anyone is really doing that anymore.

jon_raw:

Yeah. Yeah. No, I, I think it's, these are all kind of dated concepts. but yeah, so that, that was the, that was all I had from the plan file. Um, and I didn't mean to take up so much time with that. Cause there was actually a lot in this chapter. One other thing that they mentioned was a couple of people who got hired on an ion storm. One of whom I just wanted to call out, Warren Spector. This was the guy who made a game called Deus Ex,

matt_mod_ch_14:

Yep.

jon_raw:

when I was a kid, this was easily one of my favorite games. I mean, it was an awesome, like it kind of combined like a Blade Runner aesthetic with like detective, had first person shooter elements, had adventure elements. Like it was an amazing game. And I think you and I were joking around about Ion Storm, like not having any games in their portfolio, basically, but you, you called out Deus Ex. Like, I think we were just both reading the wiki page and, uh, and this was one amazing, amazing game in their portfolio.

matt_mod_ch_14:

Oh, oh yeah, and it's actually amazing because they almost, they basically like, they bring it up in, almost in passing. Uh, and then they, they talk about, they give this funny little story about the guy, this Warren, uh, that you mentioned, where I guess Mike Wilson wanted, uh, to pull him into one of his PR stunts. And he was like, I am not going to say suck it down. Uh, we are the like buttoned up, we're the classy part of Ion Storm. And you know what? We're He was right, because they're the only part of it that has stood any any semblance of the test of time. But then he doesn't go into any more information about Deus Ex in this chapter, and it was like very frustrating. I mean, maybe it's probably because there wasn't all of this drama, like they were probably just like actually making the game, as opposed to the rest of Ion Storm.

jon_raw:

Yeah. Which, uh, yeah, turned out to be a complete cluster. they mentioned, we, we alluded to this in our last podcast, but there's this guy named Mike who was always interested in being, he wanted to be on the publishing side, he wanted to handle like distribution and just be more of like a businessman. And they mentioned this funny section. Where, you know, so at the top of Ion Storm was Romero, uh, this guy named Todd and I, think Mike, and there might be others, but there was a point where a lot of the employees of Ion Storm were really upset with Todd. They did not like Todd and Mike pulled Romero aside and was like, everyone hates Todd. We got to fire him. So Romero is about to fire Todd. But then he chickens out and instead he just talks to him. And Todd actually convinces Romero to then fire Mike, which I just found, I just found hilarious.

matt_mod_ch_14:

this was one thing that I wrote down actually in the other chapter's notes. It was like, I think, I think Romero just wants everybody to like him. Like he has this really tough facade and he has this, yeah, this kind of bad boy. Facade. But at the end of the day, I think he's kind of a teddy bear. I mean, this, this kind of showed him to be like unable to make this hard decision or, you know. Yeah, I think at the end of the day he did want everyone to like him. Especially with how, like, How positive he was to Id even after he left. Yeah.

jon_raw:

he was probably, and, uh, this is totally me conjecturing, extrapolating, but I think he was probably insecure. Like, can you imagine working with someone like Carmack who's, you know, Almost literally a magician. Like he's just creating things that don't exist out of thin air on a regular basis and having to like cut ties with him and put having all this pressure on you to like make the next big thing. And you, you don't have your car Mac. You know, the fact of the matter is Romero wasn't, he was not down in the trenches, like coding these engines. So he didn't understand that process anymore. Maybe at one time he was doing that, But So I, I, you know, just my read of the scenario is he might've been very like scared basically about his life situation, like, cause it sounds scary to me.

matt_mod_ch_14:

But yeah, so now there's this old, this switcheroo and he, he does what I think is the right situation is he jettisons Mike because he has been pulling all of these crazy stunts where there's this little story where he, he goes to Eidos and like, first off, they had, you called this out, but they had to deal with Eidos to make three games. And then there was like an option to have three more games. So, everything is in disarray. I don't know if we've made that clear enough. Like, Daikatana is one of the games. There's this other game that was supposed to take six weeks, and it's now, like, costing three million dollars.

jon_raw:

Oh,

matt_mod_ch_14:

I don't even remember. What's that?

jon_raw:

Dominion. So I remember this game coming out. Everyone knows what Starcraft is. It's one of the most famous RTSs of all time. Dominion came out right after Starcraft. And it was basically just a crappy RTS. So I actually remember this game coming out and I remember it being completely lambasted in the media. Like, we all just made fun of it basically.

matt_mod_ch_14:

Well, so this is, this is the stage, the stage, and then Mike has the gall to go to Eidos and be like, all right, we got three more. Come, you know, who's, who, you know, take it or leave it. And the Eidos people are like, are you fucking kidding me? Like maybe launch one successful game and then come back to us. Because like right now you're just running a clown show over there.

jon_raw:

Yeah. And, and speaking of clown show one other element of this chapter, and this was partially started in the last chapter. So Romero saw, uh, Quake two's amazing tech and part of his leaving id. was that he could still leverage id's engine. And there was a section towards the end of the last chapter that I don't think we mentioned where he saw Quake 2 and he was like, Oh, awesome. I can use that engine. He couldn't use the engine until December, but he thought It would only take a month to incorporate the engine into Daikatana, which is just crazy. Like, I mean, it just sounds like,

matt_mod_ch_14:

It probably would have taken Carmack a month. Like, that was probably where those estimations were coming from.

jon_raw:

Yeah, but then they also talk about how they got the engine from id and it was just completely not what Romero was expecting, you know, like basically the way they were programming dikatana, it was meant to sort of fit in with the quake one engine, but the quake two engine just had, it was designed in a completely different way. It had different APIs, so they had an extreme struggle in basically kind of porting dikatana to this new engine. and it was evidently a disaster.

matt_mod_ch_14:

it's so funny because like, I don't know, I think it's really easy to backseat game design here and be like, wow, what an obvious mistake, you know, in hindsight. Like, couldn't you have realized that like, you have this game most of the way finished. The incremental value of porting it to this new engine is not going to be nearly worth it. I don't know, I mean the cost and just the risk. I mean, it's like, and in my notes, one of my few notes for this chapter was estimation is hard, but I feel like estimates are always just pitched as like, Oh, this is a number here's the estimate. and I've never personally done this approach. I want to, I want to start using it. But you, there's this approach to estimation where you do like, The average case, the best case and the worst case. you use that to make a more informed decision. Like, Oh, okay. Like it, you know, with, with one standard deviation of badness, like it could expand to a year or what have you. And then at that point, it's like, is it worth it potentially taking that long? Like, of course not. I don't know, my heart just sank, because I kind of wanted, they built Daikatana up to sound like this amazing game. And like, I really wish it had delivered on that. Did Daikatana ever come out?

jon_raw:

Yeah. Yeah. And it was, it was pretty trash. I'm sure they'll, I'm sure they'll talk about it, so at the very end of this chapter, it ends with a very, very just tragic event where Stevie case. Uh, who we did, who brought up in the last chapter, she invited Romero out to dinner. And she had always been a loyal sort of acolyte of Romero, a big fan of Romero. And at this dinner, she told him that his entire Daikatana development team was going to leave Ion Storm. And that's what happened. So he came, you know, back to Ion Storm the next day. Everyone was sitting in this big, you know, boardroom style meeting room. And they told Romero that they were leaving. And so he, this chapter ends with him losing his entire development team. You know, Diakitana is in dire straits because he's, you know, he's porting it over to this new engine. and he's just not in a good place.

matt_mod_ch_14:

Oh my gosh. I mean, the whole of Ion Storm is just in complete disarray. They're talking about, there's a failed acquisition by Eidos, uh, and like, it's just, I don't know. It sounds like a, it sounds like a hot mess, but I guess, I guess we will see. How Romero, uh, I don't know, works his way out of this situation. Uh, next time, in Chapter 15.

jon_raw:

Nice. All right. I'll see you, Matt.

matt_mod_ch_14:

Alright, see ya!