Ben Rady: Hey, Matt.
Matt Godbolt: Hey, Ben.
Ben Rady: Hey. I got an idea for a topic,
Matt Godbolt: But isn't, hang on. I'm the one who says, Hey, Ben, first. This is, this is confusing me.
Ben Rady: We're flipping the script today.
Matt Godbolt: All right. All right. And I don't even know what this topic is. What's the topic?
Ben Rady: It's a really general topic. I want to talk about video games.
Matt Godbolt: What's not to like about video games?
Ben Rady: I know this is the thing. So I wanna talk about the games that we play. I wanna talk about how these games are made. I wanna talk about the evolution of video games from like, the days when like, one person could build a video game to now where it's like a, you know, multi-million dollar movie production type thing.
Matt Godbolt: There are still game the one person produces.
Ben Rady: Yes. And how it's sort of been reborn in other forms, you know, like steam and mobile games and all these other things that sort of like, have recreated that world where it's like one person can make a game. So I wanna talk about all of those things.
Matt Godbolt: I love this topic. Let's do it.
Ben Rady: So where do you wanna start?
Matt Godbolt: Well, what, what even are a video game?
Ben Rady: What even are a video game? Well, that's, yeah. What is, what is the definitely talking about.
Matt Godbolt: What about, are we gonna talk about like console based stuff? Are we gonna talk about, you know, handheld, are we gonna talk all the above? Or what are you thinking specifically? You thinking?
Ben Rady: I think it's the whole world. It's the whole world of video games. So here's, here's a, okay, so let's talk about a...I'm gonna ask you a question. Okay. Because you just made an assertion that says an individual person can make a video game. Right? And that's true. Can an individual person make a console game? Is that a reasonable thing to expect that anyone could do?
Matt Godbolt: I think so. Still. I mean, the example that immediately springs to mind is Stardew Valley, which is on Steam, and is on consoles, and is on all the things as far as I can tell. And my understanding is that one person Concerned Ape made that game as a kind of like, ah, just wanted to make a game. And then eventually was like, Hey, this game's pretty good. His girlfriend's like, what are you doing? And I'm like, oh, I'm just, you know, enjoying doing some coding. It's like, oh, but I made a video game. And he, and as far as I'm aware now, this is where, this is huge speculation. He did the art and the sound and the, the game and, and everything, and then put it together. And I think, so you can do that, but I also don't know if it was a success on Steam First, and then he got like the dev kits and things that would allow you to port it to that or anything. So I don't know if someone could sit down and make a video game on a console without voiding the warranty on the console in the first place, and installing all sorts of open source development tools, because they don't generally let you do that.. So maybe that's, that's a thing. Whereas the, but that is disability. Yeah.
Ben Rady: Yeah. That is still a path though, right? Like if your dream was to, you know, I wanna make an Xbox game, right? Xbox might be a little easier to do this with, but, um, you could get there by first making a game and publishing it on Steam, and then building a market for it.
Matt Godbolt: It, an engine that is somewhat portable anyway. Now I don't know what, um, Stardew Valley value is written in C#. But in the back of my mind, when I'm playing it, and it sort of does one of those little glitches where it takes a little while suddenly and you're walking along otherwise smoothly, and it's like, oh, oh. And, and then carries on again, in my mind, I'm thinking, I wonder if this is some kind of garbage collected runtime thing going on. Is this, is this Mono? Is this, you know, running C#, I mean yeah. Something like that. And is that why it's been able to be ported reasonably easily? I don't know. I know nothing about it, and I'm sure we could easily Google it, but let's, you know, well, let's talk more generally about things, but you know, there are engines that are available.
Matt Godbolt: There's the Unreal Engine. There is the, oh, gosh. Uh, what's.
Ben Rady: Unity?
Matt Godbolt: Unity. Thank you. Good grief. I was only talking with somebody about it earlier today. There's unity and a whole bunch of things like that, that you can get. And there are commercial licenses, obviously, but there's also, I mean, you sign up for Unreal Engine and they give you access to it, so you can just, so there, it is more accessible than it's ever been to get like a world class engine to, to write your game on and then maybe be able to port it from platform to platform more straightforwardly. But I don't know how, whether that's really an exception, you know, is it, is is starting by, by its very nature. And from the, the, the, the kind of game that you, you could reasonably do this because even like the Pokemons of this world that you know mm-hmm. Have a similar flavor. It's just a top-down thing. It's only a few sprites, really. Um, obviously there's millions of permutations and combinations of Pokemon, but let's just ignoring that, that, but that kind of genre, top-down Scrolly walk around anything, um, even two decades ago, there would've been a team of five people.
Ben Rady: Yeah.
Matt Godbolt: Yeah. You know, maybe one programmer, an artist and musician type person who was on part-time may maybe, you know, so three, maybe four for a tools person or whatever. So, you know, you could easily see how it could be be, um, uh, multi-person game even back then. So, yeah. I don't know. I think it's exceptional for an individual to make a fully featured game. And I, but I love the idea that people can.
Ben Rady: Yeah.
Matt Godbolt: You know, my complaint about the games industry when I left it was that it, nobody was taking any risks anymore.
Ben Rady: Right. Right.
Matt Godbolt: All of the publishers, it was so expensive to make a video game, and I can't really blame them. They wanted a surefire hit. So it would be franchise after franchise, it would be movie game. You know, it would be another SWAT game.
Ben Rady: Right.
Matt Godbolt: It would be another, you know, a, a a, um, sequel to an already existing game, but not like a new IP or new new idea, or new out their idea. And I think probably when Nintendo came, they've always sort of danced at a tune of their own drum to an extent when they came along with the switch and kind of blew everyone out the order with, of the world, with all these really random, weird different games. They only did it because they knew that they could sell Mario to people like me .
Ben Rady: Right, right, right.
Matt Godbolt: So as well as your weird Wii Sports thing, it's like, I'm gonna be buying that no matter what, because it'll have the new Zelda game on it, and it will have the new Mario game on it. So there is some,
Ben Rady: They're using Zelda to pay the bills and then using that money to do all the cool experimental stuff that they want
Matt Godbolt: Exactly. Yeah. Exactly. But the EAs of this world, uh, that are churn out sports game after sports game or whatever and the, you know, the other, other places that have good franchises, there's, there's not that much of an incentive to experiment because it's so expensive if you get it wrong. But if you are one person in a bedroom somewhere,
Ben Rady: Right.
Matt Godbolt: And you're investing your life, then sure. Go, go for it.
Ben Rady: So give it, give it a try. I feel like there's something with that, with the sort of desire by, by game, you know, publishers to do version two, version three, version four. I mean, how many civilizations are there right now? Like 85, 86, something like that? At least the, huh. And I love Civilization. It's a great game, but it's like, you guys have got a cash cow and you're just milking it. Right. Um, but I feel like the, the, the sort of realization of that in the early days was you just make more versions of the game and the same effect underlies it. But I think the sort of more modern version of that is the, like, um, like in-game purchases and DLC cosmetics, DLCs and DLCs, where it's like you, you, when you make a game, if it's, you know, even a remotely decent game, you're gonna find some core group of people that really, really, really like it.
Ben Rady: And they're gonna spend absurd amounts of money on it. They're gonna spend.
Matt Godbolt: just to change the color of their weapons, or whatever.
Ben Rady: ten or a hundred times. They're gonna spend way more than what your average or your median really your median player is going to spend. Right? And so you don't, like, one way to do that is to just release version 2, 3, 4, 5 of the game, and they'll buy it because they're fanatics. But another way to, to take advantage of that is to give them things in the existing game, sort of let them, you know, kind of revel in this thing that they love. Right. Yeah. Um,
Matt Godbolt: To the extent even that some of those games are given away for free.
Ben Rady: Exactly. Right.
Matt Godbolt: And all the money comes from the, the, the loot chests. That you buy or whatever, right?
Matt Godbolt: Yeah. The median revenue per player is zero
Matt Godbolt: . Yeah.
Ben Rady: And the average is actually quite good , right? Yeah. So, so it
Matt Godbolt: Really has changed. I mean, just the other, just the, the fact that you can have DLCs. And the fact that you can even, I mean, patch, uh, games after they've come out, I mean, like, who hasn't bought a game close to the day of opening? Put it into their console and it goes, wait a second, we've just got two and a half terabytes of, of patches to apply to it before you can play it. And you're sort of explaining to your crying child why they still can't play the game
Ben Rady: Yet. So I I, I had this, I actually had this yesterday. I had this yesterday with, um, uh, so, uh, I'm a huge Diablo player. I love Diablo. It is a mindless game. It's like mostly mindless. There's like a little bit of like, you know, planning strategy stuff to it, right. But it is mostly just a click on things and watch, you know, pretty pictures and things be destroyed kind of game. And it's like a guilty pleasure of mine. But I've been playing it ever since I was like a teenager, essentially, like in my early twenties. Um, and, uh, Diablo four is coming out this summer, and there is a, a beta this weekend, a closed beta. So if you pre-order the game, you can play it this weekend for a few days. And this is, you know, it's, I I, I actually love the way that they're doing this. So it's sort of like, there's the closed beta this weekend if you pre-order it, which is clearly the, like, all right, this is our first world test, and then there is an open beta next weekend where you don't even have to have paid for the game, which is clearly their load test .
Matt Godbolt: Right.
Ben Rady: It's like we make no guarantees that any of this is gonna work. In fact, we might even break some things on purpose just to see how our failover mechanisms work. But I pre-ordered this and I also got a copy of it for my son because his birthday is next week. And I thought it'd be cool if we could play together this weekend. Right. Pre-order the game, it sends him a gift, like, uh, you know, confirmation link. He clicks the confirmation link, NullPointerException.
Matt Godbolt: . No.
Ben Rady: And he was like in a panic, like, I came home from work yesterday, and he was like in a panic of like, ah, thank you for the game, but I can't get it to work. And it's the thing, what am I gonna do? And it's like, you know, the the, the beta is like this weekend, right? It's like today basically.
Matt Godbolt: Like, yeah.
Ben Rady: So it's sort of like, um, like, oh my God, what are we gonna do? And it's like, yep, that is, that is how these things are, right? You put the, the disc in there and it's like, you know, it wasn't really baked when they shipped this. Right? It wasn't, it wasn't really done.
Matt Godbolt: That's not how it Yeah. Which, which, you know, to me is, is interesting. Uh, the amount of effort that we used to put into our discs and the, the care and the the terror actually, right? Yeah. Of being there with the, the guy in the motorbike leathers, uh, from the, the shipping from, from the, the courier company is standing in reception looking at his watch, and you are around the, the, the, the 12 disc CD burner telling people not to jump around because these things were so sensitive to vibration while the last 12 of the gold masters were being made. And then writing on them really carefully, not getting your fingers on them, and then handing them to this person going like, I hope to heaven. That's good. Because that's it. Now there's no comeback from here.
Ben Rady: Right? Right. Yeah.
Matt Godbolt: And if I, I dunno if I've ever told the story, but, uh, twice games that I, not that I worked on, but friends of mine at the same company have worked on, have had, um, does the kind of terrifying glitches that happen that only when you like finally build the disc, ship it, and then people put it into their un non-developer consoles and run it for the first time. and un-initialized variables come to light, shall we say, in the, in the hardware. Yeah. But variables that were initialized by the debug console that pops up and says, you know, welcome to Sega Saturn. This is, you know, a 32 x, here's a memory you've got and you can do whatever. Um, but they aren't initialized from a cold start on a machine that doesn't have that operating system like rom in it. Right. It just boosts the disc. And then you get, um, like a, a dinosaur with his head inside out that looks terrifying to children, um, because you can see all his teeth and eyeballs in the inside of his head. So, um, yeah. So you don't get that so much anymore, but you get NullPointerException.
Ben Rady: You get NullPointerException. Right. Yeah. Oh my God. Uh, okay. I have, I have another question. Here's, uh, more of a hypothetical scenario for discussion. Let's say you and I were gonna found a game company, and let's say that we were gonna found this company with a few other people, and, but we needed to come up with some way to sort of coalesce all of our ideas about games into a cohesive vision for this group. Like, what kind of games do we want to make? How do we even establish a common language about games.
Matt Godbolt: Right.
Ben Rady: And make sure that if we're talking to each other about our ideas, that, that those ideas make sense to the other people that are hearing them. Here's my, here's my thought experiment on how you do this. Everyone in the group picks a game, and every other person in the group plays the game that everyone else picked. So if there's five people, we're gonna all play five games. And the intent of what the game that you pick is to represent sort of the, the platonic ideal of the game that you want to make. Right? It's like, I would love to make a game like this.
Matt Godbolt: Yeah.
Matt Godbolt: What game do you pick?
Matt Godbolt: Oh man. So the nearest thing to the kind of vision that I have, oh, you see, can I pick two ? No, I'm not allowed to pick two. Cause what I would love to make is kind of a hybrid between two games. And I'd love to sort of, so let, let me explain to you my knee-jerk reaction about the game that is modern and would most clearly represent the aesthetic and the, the, the vibe that I would want out of a game. And in fact, the mechanics to some extent, and ev just everything. And that would be breadth of the Wild Zelda, breath of the wild. Right. It's just an, an accomplished, beautiful, beautiful game. It's staggering how amazing the graphics are given that it's running on just a switch that is, you know, pretty pedestrian, even when it was first made. You know, Nintendo have never made any bones about putting the most whizzbang features in their rendering system, or, you know, they, they make money on their consoles, which nobody else does.
Matt Godbolt: Right? Everyone else sells their consoles at a loss so that they can get them in your house. Right. And they make money on the games. Nintendo just make money on everything they do with you and mugs like me will buy every incarnation of every Mario Zelda and everything game, even though I've already got it. Right. But anyway, um, so the aesthetic of that, the way that it, the, the, the pacing of it and everything is beautiful and I love it. And the fact that it's open world, um, that is what I l like, I like the idea of there is a plot if I want it, and if there's not, I can happily wander around and just hit trees and stare at the things that the, the, the beautiful sunsets that happen and, and just hang out in a game that's just like, I'd like to live here if it wasn't for the nasty monsters.
Matt Godbolt: Right. You know, . Right. But I can avoid them. Largely, it feels, so that is my kind of game. I'm, I'm much more of a casual gamer than I ever used to be. And so the idea of a game that you can pick up and put down and give or take, you know, a big screen that can show you here's what you're supposed to be doing, um, I can pretty much go, I don't, I don't care. I'm gonna, what's that over there? Oh, I, hang on a second. Those three things look like, ah, and then find a Korak or whatever, you know, that kind of thing. So that's, that's my ideal. The second part of that is the game exile from the BBC Micro, which was one of the first open worlds 2D games. Okay. Yeah. Spaceman flying around in like caves looking for stuff. And I feel that there is morally a way of taking a sort of metro D feel, um, in terms of like space fairing suited person in a, like a hostile environment and marrying it in 3D with, um, something more open worldy like, uh, Legend of Zelda. So that's kind of like broadly what I would like to engender upon the team as it were, and say something that comes, that draws from a, from the palette of these things is what I want.
Ben Rady: Right. Right, right.
Matt Godbolt: What would you do then? Uh, what would be your choice or choices now? As I've had two, you could have two.
Ben Rady: To, yeah. Yeah. No, I, I think, yeah. I mean, so I, I have thought about this a little bit and I think for me it's XCOM, I nice, I really liked the XCOM world, uh, you know, aliens and, and you know, sort of proto military and all of these other things. And I actually, like, it's not even like one of the XCOM games, it's the whole franchise. Right. The whole progression from, you know, you, you're starting out where it's like, oh no, this is the US government and there's these tiny little alien invasions all the way into the modern incarnations, which is aliens have taken over the world, and now you're basically fighting a guerrilla war. Right. And everything in between there. And that, the whole world, I think is just really kind of interesting and immersive, and it just sort of locks you in. And I really like tactical games in general. Um, I like the sort of like both the optimization, like the squad optimization that you do, where you're sort of of like, you know, maximizing resources and building up the, doing research and building the best, you know, equipment that you can get and all the things. And then the actual like tactics of, of the combat, right. Where you're like, you know, trying to move and, you know, do things efficiently.
Matt Godbolt: Cause that's sort of, I isometric, well, at least it was in my day, isometric, turn based, you know, move your squad around here, and then you kind of click, click, click, click, and then you go, go, and then everyone moves. And then you kind of, the screen scrolls around and you sort of, you get these hints of aliens running across the, your, your, your field of vision you know, oh my gosh. Oh, I didn't realize there was one hiding behind the bin or whatever. Yeah. That kind of thing. Yeah,
Ben Rady: Exactly. Exactly. And part of this is because I'm a huge, like DnD player, right. And I like d d and, and those mechanics are literally like, I mean, the slightly different rule set, of course, but it's like those tactical combat mechanics are exactly what you're doing when you're rolling D20s in, in Dungeons and Dragons. Right? Like, you know, you're, you're, you got however many actions per turn, and you sort of can do these different things and you have different equipment that you use. And so XCOM for me, sort of blends together, you know, all of those different elements into something that has a, like a very cohesive world and tells like a, just a, a great story. Like the story really sort of pulls you in Right. Part of the thing. Um, and I think that is, that is probably what it is.
Matt Godbolt: And it's, so it is the nearest thing to a board game. , you can play on a computer as well. It, all right. It's, it's like turn based as it is, you know?
Ben Rady: Right. Yes. Uh, it's a game that you can play with a baby resting on your shoulder, which I certainly did. , that's, uh, when my kids were, were, were young. It's sort of like, it's turn based, so you can just walk away at any time, you know? Yeah. You
Matt Godbolt: Don't have to be twitchy.
Ben Rady: Yeah. You don't have to be twitchy. You don't have to have the fastest reflexes in the world. You just have to sort of sit.
Matt Godbolt: You don't even have to have two hands. Right. Uh, for a little of it. Yeah. Yeah.
Ben Rady: Exactly. Exactly. So, yeah. So that would probably be mine. But I feel like if you, if you did this, it would be a way for people to sort of like, um, start out with their, with their preconceptions just laid out on the table. Right. Right. I like, because if you brought a bunch of people together like this, it'd be like everyone is there for, if they've got that thing in their head of, oh, wouldn't it be great if I did this? And they're gonna be different, right? Yeah, of course. And then you sort of get all that out. You get it out on the table, and you be like, all right, this is my perfect game. This is my perfect game. This is my perfect game. And you're gonna see all the differences. And then hopefully you like start to triangulate a little bit and you sort of find like a middle point.
Matt Godbolt: Yeah.
Ben Rady: Or you'd be like, look, I don't want to make like the homer car here and make a game that is just a mix of all these five things, . Cause that's gonna be terrible. But I really like your idea. So I'm gonna, I'm gonna give up my dream a little bit because I like your dream too, and we're gonna just go in that direction, cuz I think that's better.
Matt Godbolt: Right. No, it's an interesting thought experiment. Yeah. Um, definitely. Uh, if, if the games industry wasn't quite so miserable, , Sounds awful.
Ben Rady: Right? Yeah. The only problem with it is we would actually have to make and publish a video game, which sounds terrible.
Matt Godbolt: Which is Yeah. Sounds awful. Right? But maybe when we, we will retire from our day jobs. We, we can, yeah. Yeah. We can sit down and have like cozy afternoon coffee chats where we, we hypothetically come up with stuff before it becomes, uh, too difficult. We have to get like a team of 50 people to do the artwork for it and all that kind of stuff. Right. Which is of course, the problem. Right. You know, it's like a, a modern, any modern game again, Starview Valley and similar things. And the little indie shops, not withstanding, requires a huge amount of effort. Um, and, and, and, oh, here's an example, actually, another one that again, theoretically would be straightforward. So one of my favorite games growing up was a game called Wonder Boy Three, the Dragons Trap. Which was a Sega Master system, which never really made it over in the, in the States a game.
Matt Godbolt: But it was a sort of contemporary of the NES, the original eight bit. It was Sega's equivalent of that. And if you've known the Wonder Boy Games, if you've ever seen them, like the coin Op game, it's just a sideways, scroller, jumpy thing, and it's, it's all Twitch based and you're kind of like getting on a skateboard of Wonder Boy Three was not like that. It was like an RPG but sideways scrolling. So, uh, in, in a way, a little bit more like the second legend of Zelda, which went for a sideways scrolling, uh, rpg. It was, it was much more like that. So, um, and, you know, it was still platform me in, in feel, but it was a great game. I really enjoyed it. And it's one of the reasons why I ended up writing an emulator for the master system so that I could play it and complete it again on my, uh, on my Archimedes. And then it's why I wrote another version of the emulator so I could play it and complete it in my web browser. So I've play, I completed it three times. One on the original, and then two and two emulates I wrote myself.
Ben Rady: And I love that, by complete it you mean make an emulator for it and then complete it.
Matt Godbolt: And then complete it. Yeah, that's right. . I mean, there's no game's complete.
Ben Rady: Again, most people don't get in the, uh, video game achievements world, I'm gotta tell you right now.
Matt Godbolt: That's right. That achievement unlock is like, yeah, you beat it again, . Um, but I've beaten it a fourth time now because a, a professional remake by Lizard Cube, uh, a relatively small company, uh, was made of it. And the really cool thing about it is that they kept the original, uh, emulator effectively running the original game, which they had to modify quite heavily to make it work. But you, at any time you could tap a button and the game would flick back into retro graphics and you could see, oh, oh my gosh, this is how it used to be. But the graphics were absolutely beautiful. They had artists doing these wonderful cartoon style animations that were gorgeous, and then they had a full. I'm still, I've had the music stuck in my head ever since, but I even liked today I was humming it. Um, they did redid all of the music with a full like orchestra. It was, uh, full orchestra, a small orchestra of, you know, a half dozen. And so you're thinking like even something where you had effectively the code to start with. And the artwork to start with. Took a small team of people to make it as polished and beautiful as it is. But it's still possible. It's still plausible. Right. So maybe a group of us, the problem is anyone we know doesn't know how to draw
Ben Rady: . I know, I know.
Matt Godbolt: Or maybe some people can do music.
Ben Rady: Yeah, I have some, I have a kid that knows how, but that's whole thing.
Matt Godbolt: Well, that's helpful. That's a whole other thing. But it's, it's a, it's a, it's a, it's a real skill to be able to generate the assets for, video games. Yeah. And the way that they're put together and the way that Yeah. Um, you know, economies of scale have to be done, right. And like, oh, this is how we conform. Everyone does the same thing the same way. And then our textures will map up at the edges. Match up at the edges. This is the one and only skeleton of the human-like character. And it's got basically the superset of every kind of animatable part of, of a mannequin you might ever want. And then we animate things in terms of that. And then you can attach any of your T-Pose, um, models to this. And then they will animate in the same way. So we don't have to like, animate every single monster individually or whatever for, for, for the base start point. So there's a ton of stuff like that. And I mean, obviously it's been in two decades really since I've been fully involved in this kind of stuff. But, uh, I wonder how much is, uh, would we would have to relearn ourselves. I'll tell you what, we, it would have great tests,
Ben Rady: , I, you know, that act. So that is actually an area, cuz we talked about this before, our testing is a skill, learning how to test in different languages. There's different skills, learning how to test different aspects of different programs in different languages, different skills. Testing a, uh, you know, a a web app in Python is different than testing, like a data processing pipeline in Python is different than, you know, all of these things. I've never had the opportunity to try to take my testing skills and apply them to video games. I did a little bit that's sort of adjacent to it when, like my first, you know, few years at a school, the company that I worked for did a lot of data visualization. Most of that was 2d. And I think I maybe even told you once about the thing that I built that did the sort of, um, vectorization of rasterized, uh, 2D graphics as a way to test them. Right. And that was more of an integration style test. But it was like, but it's test nonetheless.
Ben Rady: Right. Like take these 2D graphics and re vectorize them and then compare them to the original vectors with some epsilon and make sure that they're correct. Right. Um, but like outside of that, I've never really had a chance to flex those muscles. So maybe that would be an interesting.
Matt Godbolt: So, so I can't, you weren't in my presentation at work on Thursday, were you?
Ben Rady: I know I never see them because I have the lunch on Thursday. Which is a shame.
Matt Godbolt: I know, but like, literally. I was talking about my experiences developing SWAT, uh, global strike team, which, which I, one of the slides is, it started out as an XCOM like game , funnily enough,
Matt Godbolt: Right? There you go.
Matt Godbolt: Called Kleaners with a K
Ben Rady: Oh Yeah. You,
Matt Godbolt: You remember, see I think you've seen this, you've seen the presentation before, but I was just wondered if this was brought top of mind to you because of that presentation. But one of the slides that I, that that was just reminded, I was just reminded of is the, the line count. So I still have a, uh, some amount of the code around, and I was able to like do some primitive statistics on it, like 130,000 lines of code, um, if I remember right. Yes. And a few thousand lines of, um, I think it was 200 lines of X 86 assembly, about 6,000 lines of shaders, which was Xbox, uh, 7,000 lines of, of PlayStation two assembly code, which is to say far too much . Uh, but it was a miserable processor anyway. Um, and then the bottom, the funny thing was what? And 1300 lines of tests, like the whole thing,
Ben Rady: Like 1%?
Matt Godbolt: And I think, I know that all those tests were for the math library, which
Ben Rady: Yeah. Yeah.
Matt Godbolt: Which was like, well, this is foundational and frankly, it's easy to test. Yeah. It's easy test. And more importantly, we could test it on the X86 host because there was no, there wasn't too much that was special case, at least for the sort of general, and then obviously you start doing like the intrinsics to say, uh, all right, we're gonna use this crazy multiply that's only on this process or whatever. But then that was essentially untested because there wasn't an easy way back then to get the feedback. From the consoles. It would have to be back to the, uh, the, the, the like CI system. Not that we had a CI system who am I kidding. Um, but it would be really interesting to see whether the, the world has moved on. I sincerely hope it has, but if it hasn't, to see your take on it would be fascinating.
Ben Rady: I I would be, I would be very interested in doing something like that. I feel like the, the, the sort of meta answer there is as long as you go into it with the philosophy of like, we are going to have, we are going to have a way to validate all these things that we wanna be confident that our system does. We're not going to, we're gonna use unit tests where we can.
Matt Godbolt: Yeah.
Ben Rady: But we're gonna expand our mind beyond that and, and, and look at the, the broader goal, which is just be confident that it works. How do you create intersubjective confidence that it works? How do you create confidence that I can create and you can share.
Matt Godbolt: Yeah.
Ben Rady: Right? Yeah. You don't, you don't have to read through every line of my code to be confident that it works. You can look at the test, you can look at the, the tool that I use or whatever, whatever it is, is you can share in the confidence that I created.
Matt Godbolt: That it's going to work. Yeah.
Ben Rady: Yeah. And so if you think of it in those broader terms, I'm sure that you could find a way to get there. It might not look like a suite of unit tests or a complete suite anyway, but it would be something.
Matt Godbolt: And I think more so more to the point nowadays, a lot more of the code would be written in a language or language is that have decent implementations on multiple machines. And you're testing the logic at that point, right.
Matt Godbolt: Which actually, this is a complete non-sequitur, and this is gonna be the weirdest episode ever, but I was discussing with some hardware folks last night, we were in the pub and I was chatting with them and, uh, was talking about people who do ASIC design. And make asics for a living, right? So this is actual silicon chips that get made. And they were saying how, um, even if they are making a new chip using old code, so like, you know, maybe they've got the, the process has changed. It's no longer 130 nanometer process. They're saying, Hey, we're gonna try, we're gonna target an 80 nanometer process. And so there's a different tooling from the, the vendor that that makes the fab, sort the fab, whatever. Um, but it effectively we're gonna keep the same code, right? It's just the same chip, but we can shrink it down and reduce the power because of the process.
Matt Godbolt: And they said, we just don't wanna touch the code at all. And I was like, but surely you wanna like, fix things, tweak it around. Like, no, no. We, we, we, we look at it and we go, this code has been, has passed the test, and then it's an exhaustive set of tests. You can imagine, right? This is, you're gonna spend millions of dollars to go to make the masks and stuff. It's like a hundred thousand dollars per layer of a mask, which is like insane. So they, they want to not touch the, the, um, uh, the, the, the code because obviously humans write the code and humans are fallible. But the argument I said to 'em is like, well, but the thing is that code is not really representative of what actually goes on to the silicon, right? You take that and then you, um, turn it into a cell library of little off the shelf Lego bricks that are then put together by a computer program that puts 'em together in theory, in in the same, so it has the same logical output of the code that you created that's then placed and routed onto a silicon wafer.
Matt Godbolt: And then, um, you build up these mask layers and then at some point you actually have to run all this kind of like physics based simulations of has this particular layout got pathological capacitance problems, um, crosstalk, um, do you have to worry about, you know, cosmic rays hitting this particular bit. And knocking things out seriously, right? At the lower end of this stuff, right. Real thing. How do you build in that resilience? You're like, so why is it that you don't, you know, that bit's fine, apparently , you know, all those eight layers of other things where people are like, um, fitting and placing and routing. Is it because that's mostly automated? Although he was describing me to me that it, some of it is not, um, be, you know, I would imagine that like if, if, if you've got like seven things, all of which can go horribly wrong because of, uh, uh, things that are, are, are don't work mm-hmm.
Matt Godbolt: um, adding one more and actually add, changing the functionality seems like that's the easy, that's the easy bit. Cause I could reason about that. And what it made me think was is that like, it's easy to test that part easier because at that point you're running a simulation that is like, almost like, um, um, like having the, this comp, compiling the C code in my case for, for my target for my host computer, and saying, well, okay, I can test the functionality of my math library because I can build it for X86 and I can run mathtest.exe On my computer, which is essentially what we were doing.
Matt Godbolt: Um, but if I had to target it with a different compiler and a different architecture and then squirt it down a cable to a different computer and run it on that different computer, I'm like, how many other things potentials are there for things to go wrong in that? So I don't understand why that was like, well, why, why the, the, the tests were, you know, it just feels like, it feels like a similar thing. It's not like, well, you test what you can, but sometimes, um, and I'm guilty of this, you know, you test the things that are easy to test and then you kind of go, oh, but this bit's a bit difficult to test, so I'm gonna leave it alone. You're like, well, that's where the problems are gonna be. I mean, first of all, because you're not looking for them. Right. And secondly, because it's probably complicated and that means that it's gonna have mistakes.
Ben Rady: You don't have the test for people jumping near the CD burner while you're burning the golden disc.
Matt Godbolt: nice. Yes.
Ben Rady: Yeah. No, that's, oh boy, that's true, man. That's true. It's hard. It's hard. You gotta, you gotta be real creative
Matt Godbolt: When you're trying, and I suppose to, to your, to your point, if you go into it with a mindset of not unit tests or integration test or whatever, but like the mindset is whatever we make, I want to have the highest confidence. And you, as you say, inter subjectively that this is going to work. And that may mean, and I've seen actually somebody, uh, we work with, um, tends to put in their PRs the test plan that they used when, they were working on, uh, a change. So obviously they're unit tests in our code as well, but like, you know, you wanna kick the tires a bit yourself. And so this person will go, this is what I did as well, all the test pass, I ran this thing and I, I, I copied it to a temporary directory and I know I had like poked around with 'em a bit and then that made me, and I'm like, cool, because if I really wanted to, I could follow your instructions, do the same thing.
Ben Rady: Exactly. Yes.
Matt Godbolt: That's the intersubjectivity that we're talking about.
Ben Rady: The intersubjectivity has to come first, the automation comes later, right? Like all the unit testing stuff started with people who would just make like a little main function and kind of hack some code in there, almost like a repl to just be like, oh, I'm gonna call this function that I just wrote, or this class I just wrote and make sure that it worked. And they're like, oh, well what if we kept that and then, oh, what if we just ran that every time? Like, but if you don't start with the, with the sort of intersubjectivity of like, here are the things that I did to gain confidence that this works as I expected it to. Anything beyond that doesn't matter. Right? Like it starts with the intersubjectivity, so.
Matt Godbolt: Yeah, yeah. Well, you, you say that, I mean, that was certainly the beginnings of my career was certainly not intersubjective. It would be like you ran some things, you poked around with it yourself and you went, ah, it seems good enough to me and you CVS put it or whatever into. And you're done. And then there was no build server to be like, even the build wasn't into subjective.
Ben Rady: Right.
Matt Godbolt: Which I think, you know, I think we've all got behind now. It's like, you know, the whole works on my computer are like, well, that's not good enough anymore. Right. We can't just have Barry's computer in the corner,
Ben Rady: You can't ship his computer. Yeah, yeah. That's why, that's why Docker was invented.
Matt Godbolt: Uh, yes. That's exactly why. Yeah. I think we've made that point before.
Ben Rady: but yeah, it's, it's like, you know that when you don't have that, when you don't have intersubjectivity, what you're forced to rely on is essentially heroism. Right? Like, oh, Matt's a fantastic programmer. He would never make a mistake. Did he write this code? Well, then it must be fine. Right. It, it's, it's like, it's like appeal. It's like the, um, you know, the, the logical fallacy of appeal to authority, right? Yeah. Like there's, there's no way for me to validate that this is right. So I just have to go on faith. I have to trust that this hero programmer did it, right.
Matt Godbolt: Right. And that's, yeah. Well, we've come a long way from a game studio. I just wanna say point that out, right? We've, we've got back onto old, old topics, you know, as much as I'd love to talk about games.
Ben Rady: We did, we did. Well, I got got I got one more.
Matt Godbolt: Yeah, yeah, yeah. Let's just,
Ben Rady: If we've got time for it. And it's a follow on to what we were saying before. Yeah. Which is talking about like, you know, sort of this like, you know, can a single person make a game? And it's like, ah, you can, it's hard. But you can, have you seen maybe this exists already. Have you seen a commercially successful for some definition commercially successful open source game? Cause I could imagine a world where you have a small group of, of core devs. I mean, there's no way to do that. I don't think there's any way to do this without that. That creates an open source game that they then also publish on steam. So it's sort of like, you know, you can download this code and compile it yourself and do all these things. I'm betting $20 though.
Matt Godbolt: Yeah that's literally $20 on
Matt Godbolt: You'll just click a button and steam and install it. If you wanna go build it yourself, go nuts, man. But I bet what you're gonna do is you're gonna crack open steam. You're gonna click a button.
Matt Godbolt: Right. That is fascinating. That is, no, I don't know. I mean, there's obviously the, the shareware games of Doom and id software, which we're not open source, but are now publicly sourced, the source is public. Um, there was some, what the heck was the game called? There was a game we used to play at university that was, had like a lisp engine in it and it was like some side scroller thing with some really clever lighting effects. And I wondering if that was, I know that was, we, we built it from source, but I, I wanna think, say that it was no, I dunno if it was published as a, as a pay game. No, that's really interesting. I don't know of anything off the top of my head. No,
Matt Godbolt: Because I have to imagine cause it, cause I even think it's resilient to the idea of like, oh, well someone's gonna steal my game. It's like, no, they're not gonna do that either. Right. It's like, if you don't have that core group of devs that know how it all works, I mean, how many times have you seen this where you're just sort of like, there's this code base that these other people wrote and I have no idea how it works. And you know what, there's probably like only 10 people on the earth that how it works.
Matt Godbolt: Within our industry, which is famously protective of its intellectual property. I used to make the gag, and I would like to, for the, any lawyers listening, I never did this , but when whenever people were ha uh, were worried about whether or not, uh, code or IP was, was gonna leak leaked out and the effect that it might have, I said, I am a hundred percent confident I could take the lead programmer of a similar desk from like jump trading or whomever, uh, HRT, whatever, and, and invite them over to our current company and sit them down and walk through the code with a whole day right in the office, whiteboarding everything. And then at the end present them with a USB thumbs stick with the source code on it and wave them goodbye, shake them by the hand. And I'm confident I would set them back five years . Cause anything that I gave them
Matt Godbolt: Is, is, is gonna hold them back. It's not that the IP is not the code and it's not the approach. In very rare cases, there are little tricks that you're like, oh, that's really unobvious. Okay, I see why that might be a thing. But mostly the IP is a group of people who have worked on a project for a long time together. And this the expanse of, of the development process and the, the, the e edge of the envelope of expanding of that kind of like the. The, the frontier of new new stuff comes from those people who are well versed in the system and understanding where the bodies are buried and understanding what things need to go back and be replaced and all of that kind of stuff. None of which you pick up from just being handed even with like a, the pointers I gave you, uh, the source code to it. Right, right. Right.
Matt Godbolt: Mean, I, and that's actually a problem for open source in general. Yes. I have this problem with people come and say, can I just add this thing to Compiler Explorer? And I'm like, oh gosh. Yeah. That means we're gonna have to look at the code, which means that, oh gosh, you're gonna go, no, I don't wanna touch this with a blind ball. Right, right,
Ben Rady: Right, right. Yeah. That's the whole thing is that if this were actually a problem, open source would be so much more effective. Right?
Matt Godbolt: Correct. Yeah.
Ben Rady: It would be so much more useful and people would be able to contribute and do all these other things. It doesn't really, as you very well know, it doesn't really work that way. Right. Yeah. Like you have that sort of core group of people that really understand the system
Matt Godbolt: And have taken the time and effort to come in and do it. And of course,
Ben Rady: Exactly right. Absolutely
Matt Godbolt: Hallelujah. For those folks who are listening. They're listening. Thank you everyone. Yeah.
Ben Rady: Um, and then you have a, then you have this whole satellite of other people that are sort of like tourists essentially, right? Yeah. They come in, they might do one or two things. They add a little bit of value here. Sometimes it's like the, the one thing that really annoys them and they kind of like dig into it or whatever it
Matt Godbolt: Might be. Sometimes thoughtful project maintainers have like tagged issues as like good early first option and they've put enough information to help people in. And then that's kind of like, you know, the sort of the drug dealer thing. Like, come in, make a change. Oh, look at the rush of endorphins you've got for fixing a typo. Yes. In this. Readme, how about this one? Oh, Uhhuh. And then before you know it, you're like knee deep in converting things to Typescripts. Right.
Ben Rady: The hero's Journey backlog.
Matt Godbolt: Right, right. That's right. Exactly.
Ben Rady: But yeah, so I, I actually, I mean, this is why I thing, it's like, you could make a game like this and yeah. Is someone's gonna steal you, is someone gonna fork your code? Well, they're definitely gonna do that. Are they gonna like steal your idea? No. The hard part there is probably getting the steam thing set up. And it's like, and honestly if someone does take it and understand it and makes a whole new game out of it, like does that really hurt you? It doesn't really hurt you.
Matt Godbolt: Yeah. It's an interesting one. Right. It's a really interesting, um, observation. I mean, assets are a different Thing.
Ben Rady: Yeah.
Matt Godbolt: That's another one that you have to think a little bit about. Like there isn't really an open source asset system that I'm aware of that is like hackable
Ben Rady: Maybe you could license the assets and the code separately?
Matt Godbolt: That's I think probably the, I mean ultimately that, that path leads to stuff like the unreal engine, like Yeah. Um, whatever, where you're like, Hey, this is a game engine that makes games of this type and there's some like basic sprites or whatever, basic 3D models or whatever to just so that you can type, make and move your little creature around or whatever mm-hmm. . But like Right. We used it to make this other game. Yeah. And it's like, you know, that's like, people have been doing that for a while, but opensourcing the whole thing, I don't know if people have done, um,
Ben Rady: Yeah, I mean I guess there's things like free civ, that's a thing.
Matt Godbolt: Okay.
Ben Rady: But like, I don't think it's, I don't think they sell it. I think it is the model is literally like you download it and compile it, or maybe you download,
Matt Godbolt: I mean, obviously there are a load of games that have like a plugin architecture that obviously publish enough, or people reverse engineer enough to be able to add plugins and modding. So
Ben Rady: Yeah. Mean I feel like people went crazy with that, with like StarCraft, like there's so many different StarCraft mods and like different things there. It's like you made,
Matt Godbolt: I know that they published anything there that was more like people revving it, whereas it's like Minecraft as I call, well maybe Minecraft being Java was a bit easier to like pull bits out. At least in the beginning. I don't, I don't know. No. What an interesting idea though. What a fascinating idea. A completely open source game.
Ben Rady: Yeah. But like a open source, but commercial. Commercial and you just, you know, you take the money that you get from selling the game and you use it to pay for the time of the core devs so they can, it, you know, sounds like kind, have day jobs, but also sort of, you know, have, I
Matt Godbolt: Was gonna say, it sounds like a perfect retirement job for us. All right. You know, as we get on in years, you know, give us another, give us another 10 years, we might be able to do that. But I dunno what an earth gaming will look like in 10 years time and whether or not there's any, any hope for us, then it'll be VR.
Ben Rady: Yeah. Yeah. Or AR maybe.
Matt Godbolt: AR or it'll be written by GPT four or five or six or whatever's around by then
Ben Rady: Uhhuh . Yes. Totally.
Matt Godbolt: Cool. Well, what an interesting question. And we've managed to explore some familiar territory along the way. Yeah. We talked about Asics, we talked about testing. We talked about games and our favorite sort of games.
Ben Rady: Uhhuh and uh
Matt Godbolt: And, uh, then open sourcing a game. So I mean, the next, everyone's gonna expect the next podcast episode to announce our quitting our day jobs to make some turn based
Ben Rady: We're founding a game studio. Yes.
Matt Godbolt: Turn based, open world, uh,
Ben Rady: Yes. Right.
Matt Godbolt: Uhhuh, um, man in a space suit game.
Ben Rady: Uhhuh. Yeah. Called Eldza.
Matt Godbolt: Yeah, .
Ben Rady: Right. Cool.
Matt Godbolt: Well, I guess, uh, I guess we should call it at that.
Ben Rady: That, that sounds like a, that's not a good way to end it to me.