FLOSS-855
Jonathan: Hey folks. This week I talked with the guys from Cataclysm, DDA. It's an open source game that you can play over SSH. It's also got a tile set if you want to play it that way. It's all about the apocalypse and trying and failing to survive. It's a lot of fun. You don't wanna miss it. So stay tuned. This is Floss Weekly episode.
855 recorded Tuesday, November the 18th. Get in the mind cart loser.
Hey folks, it's time for Floss Weekly. That's the show about Free Libre and open source software. I'm your host, Jonathan Bennett, and today we are gaming. Well, I might be gaming, I don't think I actually got it started in my terminal yet, but I have played the game today. We're talking about cataclysm DDA dark days ahead and interestingly, that's not the only Cataclysm Day game out there.
One of the questions I have is, are they all related? But we're talking about an open source game that runs in your terminal. You can literally play it over SSH, but it does have a tile set as well. So if you're not quite nerdy enough to enjoy it in text mode. But it's, it's a lot of fun. I. I warn you it is a little bit addictive.
You may, there, I think, I feel like there are two paths that you take. You try this, maybe three paths, three paths. You try it and you go, oh, I just can't, this is not for me. Or you try it and you go, oh, this is great. And then you die 15 times and you rage quit never to play it again. And then there's a few of us that we try it and even though we die, we get hooked.
It's like, oh, this is great. And I may be in that category. We'll see. But anyway, I've got three of the developers from the game. I've got Kevin Collin, and Corgen, I believe is how his his handle has said. Welcome to each of you guys to the show. Hi. Thanks for having me. Thank you. Thank you very much.
Yeah. Is it, is it cogent? I will just jump in there.
Curtis: So it's cogent. Cogent. Yeah. You could a lot of people can call me Corg and that's perfectly fine. For like vent trillo, like I, I do my, my, my actual name is out there. Curtis is fine as well. Okay. For the purposes of the podcast.
Jonathan: Okay. Got it.
Alright, so what tell, and I'm not sure even which of the three of you are the right one to ask this question. But let's start like at the beginning. What is cataclysm
Kevin: at the beginning? So I call it a open world RPG. If you want to add more tags onto it, it's an open world post-apocalyptic survival, RPG.
It's not that unlike a lot of things I call the main, influences Ultima and excom and fallout.
Jonathan: Okay.
Kevin: So some people call it a roguelike, I call it an Ultima Excom fallout, like mm-hmm. That makes sense. But that's mostly just to get people to shut up about it. But you make your character, you get dropped into a post-apocalyptic scenario.
The world has ended and you run around struggling to survive and you do not win. That's. That's the long and the short of it. It's you, you, you stick it out as long as you can.
Jonathan: It, it's, it's sort of like the old dwarf fortress beam then that fail Failing is part of the fun, I believe is how that absolutely.
Curtis: That, that's absolutely a recurring thing in the community channels of this. Is the dwarf fortress kind of fun?
Jonathan: Yes. Yes. Absolutely. Now, was there a, the game we're talking about today is cataclysm, DDA dark days ahead. Was there a cataclysm game?
Kevin: Yes. 12 years ago. The original version of the game was cataclysm.
It was maintained by someone that went by Wales. Okay. And I just happened to come along and be interested in contributing at about the same time that he decided to retire. So I made the fork. Oh, okay. So it was, it was a working game. It was very, very, very different at the time. Probably the biggest thing that I contributed was that the code base was not set up for multiplayer coding at the time.
Mm-hmm. And everything was very idiomatic, very single developer hacking things in the way they wanted them. And I brought a. Let's engineer this and make it friendly for a lot of people to contribute. And that turned out very well because we have rolling 50 contributors and a grand total of somewhere in the ballpark of 2000 contributors.
Well, that's great. Since I started.
Jonathan: Yeah. I, I, I'm not sure I'm familiar with that term. I know what you're talking about, but it's, it's a multiplayer coding experience. The game itself is not multiplayer. Yeah. But hacking around on the code is, I like that. Yeah.
Kevin: You, you can, you can do a project for yourself and do whatever and things like tests and, and keeping things consistent is nice, but people will tend to drop it.
Jonathan: Mm-hmm.
Kevin: But if you want contributors, there's a different kind of work you put into making it friendly. Like one of the huge things is things like the definition of a type of monster mm-hmm. Was hard coded in the game originally. Right. Now there's A-J-S-O-N blob. That says, this is the stats for a monster, which means someone with zero programming ability can, and this is not hypothetical, it's happened hundreds of times, can come along and go, here's a new monster.
Here's the stat block, here's how it acts. And you can just pick and choose from the existing ability and drop in your own content. And that's mirrored across map creation items, monsters. And we even have a, a, we accidentally a scripting language that gets used for controlling behavior of things.
Jonathan: You, you, you accidentally created a scripting language. Yes.
Curtis: What I have a little bit of, I, I have a little bit to add to that too. I would say that I forget how long ago this, this was, but I wanted to make a mod for cataclysm and I wanted to make it a semi hardcoded mod. So I'm like, you know what? I wanna make a magic mod.
We're gonna have magic spells and all that stuff. Well, I wanted to do. I took in, in inspiration from what Kevin's laid the groundwork of, and I wanna make this possible for people who don't really know that much coding to continue to contribute to this foundation of the magic system. And it sort of ended up being like a pseudo scripting language, but it didn't quite hit all of the things that we wanted.
So I would, I would say that that's almost the precursor to what we call EOCs now Fon conditions, which is all, all in JSOI believe. I think all Colin can speak to that one a lot.
Kevin: So what Corg added was spells mm-hmm. As A-J-S-O-N entity, right? So it's like you do a thi, you trigger this thing and it calls into the code for you and can trigger various effects, right?
So now we have the funny situation of there's no magic. In the main game. But we have lots and lots and lots of monster abilities that under the hood are called spells. Hmm. Because that's the, the framework.
Jonathan: Yeah. That's, that's the way that up, that's the way that goes. You introduce a new tool and the next thing you know, oh man, that would be great to, everything uses the new tool.
Yeah. And it, it very rapidly
Kevin: back propagated from cogs mod evangelism back into the main game. And then now anytime you add a new ability, the, the first place you go to is make a spell that describes what the effect is and then assign that to the monster.
Jonathan: Yeah. Yeah. That's funny. That's great. Okay, so one of the fir one of the things that I really found interesting about Cataclysm DDA was that you can play it over SSH it literally will play in the, and this is one of the things that sort of disappointed me and just a little bit about door Fortress.
'cause Door Fortress, it's all text-based, and then you start looking and it's like, well, I could play this over SSA, I don't know why. I feel so strongly about this, but like being able to play a game over SSH is just cool. Maybe it's because I just think SSH is one of the coolest things anyway. I was very disappointed when Dwarf Fortress, you don't actually play it over.
SSH, it's not worked that way. Cataclysm, DDA, you totally can. And which is, you know, you can run it in a screen session and then you can, you know, SSH into your game from anywhere and just pick right up. Is was that sort of in there from the beginning?
Kevin: That was how it worked at first. Mm-hmm. And actually many, many years ago I say we, but not me, one of the other co-founders ran a kick start.
And which was successful. And part of that was hiring someone briefly but full time to work on a couple of really landmark features. And one of those was bolding, a tile set on top of this curses only game.
Jonathan: Mm-hmm.
Kevin: And then we've pushed forward with that and it, it's a very, well, okay. It's really Jan, but it's a very capable system.
It's hard to modify, but it gets the job done Right. And I'm pretty much the only reason we still have the terminal support because you like me. Anybody else?
Jonathan: You are like me. And you believe that SSH is a superpower.
Kevin: Well, for about, I can use it for about two years I was doing all of my development for cataclysm.
On EC2 Oh, in a remote session. Mm-hmm. So I absolutely needed that to be able to do testing. So yeah, we keep it around. But we, we do, we have very regular, about once every two or three months we'll have a debate about is it time to ax terminal support now? Because basically nobody's using it except for me, that's not actually true.
It gets into numbers. It's weird. So we have download stats we can pull from GitHub. Mm-hmm. Which is where our releases live. The thing is, we are in the arch repos, we're in the Debbie and repos, and we can't pull the numbers as easily for those. So we don't actually know how many people are doing.
Whatever. And at the same time, we have a lot of Russian and Chinese players and Japanese players, and the game tends to get repackaged. So we have localization support. So they aren't, they aren't doing custom builds and hand editing all the strings anymore, but they do tend to repackage the game. And so we have no visibility into how many, what, what people in the Japanese community are doing.
Mm-hmm. So we can see, like, for the most part, the American users are pulling from GitHub directly, either directly or via one of the like five different launchers. And we can see, oh, this many people are pulling the Mac build this. Many people are pulling this windows build, this many people are pulling the Linux tiles, build this.
Many people are pulling the Linux curses build. But we don't have great visibility into what a lot of these downstream communities are doing. And I personally, in in the project in general, worry a lot about like just cutting people off because it is a very low spec game that a lot of people are able to play because we keep it very low spec.
Mm-hmm. And I worry about cutting those people off.
Jonathan: Yeah. Alright, so we've heard from we've heard from Curtis and we've heard from Kevin oh, my, all three of you have very, very similar names. Colin, what, what, where do you fit into this? What do, what do you do with the project?
Colin: So I I came in as a content contributor.
Are you getting any, any background noise from me in here? We, we, we hear your kid Little bit. That's fine. Okay. Sorry about that. They, both of them are sick home. Let me, let me let him out. 'cause I, I, I,
Jonathan: okay, not a problem. So. You, you were talking about possibly dumping the, the command line version of it.
I will say, first off, please don't, because it's one of the things that makes the game cool, right? It, it does kind of strike me that I don't know, maybe it's time to modularize the, the, the view system so that nobody else has to worry about the text-based version of it.
Kevin: Yeah. And part of that is the fact that the foundation was text-based.
So when you get down to primitives, like when you draw a monster, it's, it's saying like, put character. Mm-hmm. And then we like, intercept that and turn it into a tiles, draw a Sprite at this location type thing. So the, the infrastructure there is very messy and it would take quite a bit to to clean that up, but yeah, it, it would, it would be worth doing.
I just remembered something in your intro, you mentioned, I mean you were, we're, we're talking about the terminal thing. Mm-hmm. There is a crazy thing that somebody just kind of swooped through and dropped off, which is we have an in script in build, which builds to web I'm blanking on the term, but like web assembly.
Yeah, the browser. Yeah. Web assembly. You can run it in the browser.
Jonathan: You can run it, it's in the browser. There's also an Android client I've seen.
Kevin: There is also an Android client that is actually used quite a bit. It has a decent amount of customization for keyboard help, because we haven't mentioned this because, but this is one of those games that uses the entire keyboard and frequently very needlessly.
It's, it's something we know we should probably work on, but for Android, that becomes a bit of a problem. But we do have custom. Interactions with the most recently pressed keys type popup you get. Mm-hmm. And that helps out. And people actually play on Android quite a bit.
Jonathan: Yeah.
Kevin: It, it's really funny though, somebody will mention our on Android and you have all these other people, like, how, how do you
Jonathan: do that?
Alright. So we started to ask Colin again, how do you, how do you fit into the project? Where, what's sort of your niche?
Colin: Yeah. So I I joined 2019 just trying to, I was, I was, had a, had a new child. We were living in a new place in in Massachusetts. And I was, I was looking for cheap video games and found, found this free game, freeze free Good.
And, and played it a couple times and was just like, just sucked in. And then I, I found the community. Mm-hmm. And then they were like, well, if you think things, there are things that are wrong, you can fix it and all. And if you can use an Excel spreadsheet, you can do JSO.
Jonathan: Yeah.
Colin: And I kept hearing that and, and eventually I was like, well, let me, I work in j in, in Excel all day, every day.
Mm-hmm. So let me go try this. And yeah, that was a hundred percent it, it is a hundred percent JSON or a hundred, you know, just, just cells. Mm-hmm. There's, there's, you know, you're, you're sitting there and I have just kind of stuck around and slowly accreted responsibilities in the project. To where now I, I help, I help keep the merge process going.
We, we tend to, you know, we're merging. We have, what is it, a hundred PRS a week sometimes. And yeah. Ballpark that come in. And, and it just takes, it takes a lot of people and a lot of work to, to sit there and like shepherd those through. Mm-hmm. To make everything, everything land people have real life events and things like that.
And, and we need to be able to sit there and kind of. Play off each other's ability to like develop, devote more time or less time to it, because this is, it's a hobby, you know?
Kevin: Okay. I, I pull, I popped up GitHub Insights 80 active pull requests this week. 36 active issues, 62 merged pull requests, 16, 18 that were opened this week.
And then this is always my favorite. 14 closed issues this week and 22 opened.
Jonathan: I've, okay. I've gotta, I've gotta comment on this because one of the, one of the funniest things that ever happened on Floss Weekly, Curtis' Lights just went off because it's on a timer, and he had to sort of wave his hand over there.
One of the funniest things that ever happened was back when Randall was hosting all, Randall Schwartz was hosting all the time, and he would book conference rooms at the place where he was working and. In the middle of one show, his lights went off, the camera was not on him. So when we have when we have fewer people, we'll actually switch between, you know, we'll go to like a, you know, it's just me talking and then everybody talks, right?
And the camera was off of him, but the guy that was running the camera saw what had happened and Randall was in this dark room doing this, like, you know, A-G-A-A-A blow up guy at the side of the road. And our guy that was doing engineering at the time swapped over to him without saying anything and just let everybody watch him do that for a moment.
And we died laughing. It was the Oh, that's amazing. It was several minutes before we can continue with the show. So, Curtis, you just, you reminded me of that, one of my fond memories of doing the show.
Yeah. Okay. We were talking poll requests. And I've gotta ask, has the AI slop come to cataclysm yet?
Kevin: Only in gyps and drabs. We have a no AI policy. Okay. A fairly strict one. We actually just recently merged a, I don't remember the name, but a config file that I think it was copilot in particular, is supposed to automatically pick up that if you ask it to make a change, we have overriding instructions that tell it to tell you don't do this with ai.
We, we fairly regularly have people going, Hey, I asked Gemini or, or whatever to do this, and it spit out this chunk of JSON isn't that great? And the next like five replies will be like, well, this is a syntax error that won't work. This, this thing, it's referencing doesn't even exist. Mm-hmm. What would, so basically No, don't do that.
Jonathan: Yeah. Yeah. Or, or the really great ones because I, I, I work on an opensource project too. And the really fun ones are, here's my pull request. It's 50,000 lines of change code. And oh, by the way, I changed the name of the project for you.
Kevin: Really? I think we've only had one of those so far that was like, we pulled in this, pulled in five new dependencies, which we are very against dependencies in general.
Like, we don't do the thing where you have like a whole network of them. It was like, here's five new dependencies and I think it was ballpark 10,000 lines of code. Yeah. And it was like to do some dumb little dinky thing that, that didn't even help anything.
Jonathan: I made the water tiles a different shade of blue.
Kevin: Right. We haven't, we haven't had a flood of those. It hasn't really been a, a spam problem like some projects deal with. Mm-hmm. But I think part of that is the instant we comes up, it comes up, we're just like well go away. I. You, you have a pr, anti profanity thing, so
Jonathan: Yeah, yeah. We do. We try my, my kids watch the show sometimes, so we try to keep it clean.
Right. No, I, I get that. I think projects that try to open the door a little bit. It's really where it's the hardest. So if you guys just say no 100% no AI written code I think that's easier to keep it out. Whereas like exactly the, the, the project I'm in, we we have a couple of developers that will use copilot when refactoring big files and they know what they're doing and can actually make it work and save some time.
That makes it a little more difficult though when someone comes off the street and has what looks like a reasonable pull request and, oh yeah, copilot helped me with this. You know, we can't just, or we, we've chose, we could, we just, we've chosen not to just shut the door in their face. Some days I feel like you guys have the better policy.
Kevin: Well, the other issue is it's still very up in the air, but the copyright ability of those contributions actually is everybody's just kind of ignoring that. And I believe we take the license licenses we use a little bit more seriously than most projects. Yeah. So we're like. Copy writes up in the air, we just can't do it.
Period.
Jonathan: Yeah. Yeah. And that's, that's pretty reasonable too. I, I asked the lawyer about that on the show, actually, and the lawyer goes, yes, that's a valid point, but the genie is outta the bottle and there's no way it's ever going back in the bottle. So, sure. Anyway the, the language, what language is this written in?
It's, it's like Pearl or Go or Rust or something. Right.
Kevin: 99% c plus plus just just a half million lines of c plus plus. You will definitely not regret writing a half million lines of c plus plus. There's 1% Python.
Jonathan: I think we have a little Pythons script in there. Yeah. There's drip of
Kevin: Python, there's some Java in the Android.
Mm-hmm. Layer. That makes sense. Now there are over a million lines of JSON. Yeah. That's, that's absolutely gigantic. I actually enumerated this just recently. We have 80 something thousand entities de defined in JSON. So like, one entity can be like an item or an a monster or a chunk of map gen or like we were saying, a spell.
Mm-hmm. And like 80 something thousand. So it, it's, it's pretty ridiculous.
Jonathan: Yeah, it's huge. So I have, I've noticed something, and I'm gonna have to, I do have a copy of this up and running, but I'm gonna have to save and exit and then create a new game because I've noticed a couple of things that it's like, there's features that are sort of roughed in, but they don't exist yet.
Like one of them is, and I, I come from kind of a, in, in some things, a tabletop background. It looks like there's what's roughed in for a point, buy. It doesn't exist yet. Are there a lot of these where someone had a great idea and it's just not, it's not fully materialized yet.
Kevin: That particular one is actually the opposite.
The point by is what the default used to be and we've moved away from it because basically balancing it is impossible.
Jonathan: Ah,
Kevin: so. We, we have actually migrated to a system that is the new system. And the point by actually might completely go away at some point.
Jonathan: Mm-hmm.
Kevin: But what we do is you generate a character and we actually run code to evaluate how good that character is at doing different things and give you a score of how good it is at doing those things.
So like for combat, say you, you give your character like level five melee, right? Say, say let me see what's a, what's a, what's a better example's? What say you give your character actually level five with rifle handling, right? And it's like, okay, you're good at handling rifles. You're up to this much.
Then you come back and also give them level five pistols. That's not gonna move the needle,
Jonathan: right,
Kevin: because you're already good with guns. Mm-hmm. So that's not actually gonna add anything. So it captures that kind of thing where there's all of these abilities that overlap and nullify each other. And if you just kind of stack up the points, it, it doesn't actually give you a good picture of how good it is.
And more importantly, what we saw with player behavior is they would do. Really dysfunctional things. Like I'm going to take a bunch of debilitating things that don't actually matter, and then give myself a whole bunch of things that make me really strong. And then I'm gonna call that a balanced character.
Curtis: That's a, that's an example of players will optimize away their fun if they get the knobs,
Jonathan: Min, min maxing. What do you, what do you mean optimize away the fun? That's fun.
Kevin: So I have actually thought about that a lot because we do have a lot of people pushing back on that. So I've, I've put some serious thought into it, and what it boils down to is that character creation game is a game.
Jonathan: Mm-hmm.
Kevin: But it is not a game we are interested in maintaining. Like we have goals for character creation about. Giving you feedback about how difficult this character is gonna be to play, but also expressiveness around role playing and the point by game is not something that we think is distinctive about cataclysm or particularly fun in the, in the.
Implementation we currently have.
Jonathan: Mm-hmm.
Kevin: So like we're, we don't have any interest in going out and making that fun. That can be a gut, super fun, engrossing part of a game, but we just have to come to peace with, like, that's not our thing.
Colin: Especially when like you see like posts out there of people talking about the meta right now is, is that you take all of these addictions and, and things that require you to go into a coma for three weeks at the start of the game and then after you've slept through the three weeks of the game, if you randomly did not get approached by a monster and then die during those three weeks, then you start the game.
That's
Jonathan: mean's not the kind of game that you're looking for.
Colin: Yeah, yeah.
Jonathan: Right. Yes, I get that. I get that. I guess then just a bit of feedback. Spell that out somewhere. Honestly the first time, the first time that I played it, I went, oh, hey look, survivor, wait. No point. Limits are enforced. So, and then you get to like stats, they're all eights and it's like, well, eight is eight average.
The, the, the the tabletop things that I come from, 10 is average. So like, am I starting out under leveled on all of these? How, like if I'm going to have a balanced play through, how many points should I have to assign? You know, should I bump one of these to 10? Should I bump one of them? Should I bump one of them to 12?
Like, and I, I get it like you're a sandbox game and you're not doing a whole lot of handholding. I don't know. I want, I wanted a tiny bit more handholding. No, that.
Curtis: You might be surprised to hear that those stats are actually pretty close to d and d. You actually do need to bump them two 10 in order from them to be average.
Jonathan: I've, that's sort of what I figured.
Kevin: But
Jonathan: again,
Kevin: but they're, but they're d and d second and third edition because the game was originally written 20 years ago.
Jonathan: Ah, yes, yes. Understood.
Kevin: Yes. We actually do care about that a lot. One of the problems is that character creation code is some of the oldest gnarliest not updated code we have.
I happen to be looking at it recently for a completely brain dead ridiculous feature I'm working on, and I was like, oh my God, I forgot how bad this code was. Did you, did you remember that? I went
Curtis: through a hole. I went through a whole development cycle of trying to work on it and it's so intertwined.
Yeah. Yeah. The graphics portion that I ended up getting burned out on that project though. Yeah. I had to put it down. It's tough.
Jonathan: Yeah, I understand. That's, that's fun. The, the, the gnarly old code, mm-hmm. Code pieces. A lot of times they worked that way. Alright, so you guys had a kickstart and you were able to hire somebody on full time.
Is there anybody that gets paid to work on DDA or is it just entirely a labor of love?
Curtis: I actually can speak to this a little bit. Sure. So it's a complicated answer. Mm-hmm. And it's very, very, very married to the license that we have. Oh, okay. So the license basically allows anybody to pick up the code base, package it, and sell it.
Jonathan: Okay.
Curtis: Right. So I'm actually the person who released cataclysm on Steam. About a year and a half ago. That was March 31st of 24. So technically I get some, some trickle of funds from cataclysm, sort of. Mm-hmm. There are, I think there's at least one person who maintains Yeah. Two people maintain the the apple release.
And they they're, it's sometimes free, sometimes a couple dollars. Mm-hmm. I don't really follow that particular
Colin: thing. There's the, the guy outta Russia who has the most recent one actually just turned it into an annual subscription model of like $20 a year or something like that, apparently, because it's so hard for him to get the money out.
I don't, oh, yeah, that's true. You know? Yeah.
Jonathan: Makes sense.
Kevin: So, and then there's indirect things. I have a Patreon that is specifically for, I'm having to host the forums and they turned out to be ridiculously expensive.
Jonathan: Yeah.
Kevin: So if you want to chip in for forum hosting in particular, like hit this Patreon up.
And then Curtis and probably our most prolific visual artist that goes by bury, both have their Patreons listed on the main webpage, which is completely open for any contributor to just drop in there. Here's my Patreon, here's my Kofi, whatever. Mm-hmm. But like, nobody ever actually. Does it?
Colin: I think, I think the MSX gut get used to it.
He he also has, has a cofi or something like that.
Kevin: Mm-hmm. I mean, I mean specifically on the main page. Oh yeah. For like, yeah. The project is endorsing these people, this is what they do. If you wanna drop on a couple of dollars, do this. Mm-hmm. Now, I personally have long since just been like, no, I'm not even interested in trying to do monetization work.
Jonathan: Yeah.
Kevin: So I just, I just don't do it. I, I've got the, the one Patreon, somebody gave me an eighth of a Bitcoin, like, like to fully 10 years ago now. To implement a specific feature. And they did it was actually a weather radio. Feature where you have a ra a radio and you can turn it on and it gives you that like robotic weather thing mm-hmm.
That you can, that you can get in, you know, in reality. And they were like really excited about that for some reason. So I was like, sure. And I like bought a couple of pizzas for it and bought the hosting for the website. And I'm pretty sure it's in a hard drive over here somewhere, but I don't know what the password is anymore.
Oh. So, so that's just gone, but it was probably done to the 16th of a Bitcoin or something. Anyway.
Jonathan: I mean, that's still worth some money these days.
Kevin: It, it's quite a lot now, but it's gone. So whatever.
Jonathan: Yeah, so I, I, I pulled up the license and Cataclysm is licensed under the Creative Commons attribution share like 3.0 license.
Yes. You don't, you don't need me this to tell, don't need me to tell you this. I do not, don't do this. Don't use creative comments for source code. Do not.
Kevin: The, the, the story there is the original cataclysm was not under a license. It was under whales going like, yeah, use it, whatever. And when we made the fork, we were pestering him.
Please. Please release your changes under a license that we can use. And he goes, okay, fine. Creative Commons. And we're like, just everybody working on it, just head, head desk simultaneously. And it was like, okay, that's it. Like he was being pretty prickly about it and it was like, this is what we get.
Jonathan: Yes.
Kevin: And then on top of that, he had accepted other contributions under the, not a license. So we did a large scale relicensing campaign where we reached out and contacted like hundreds of people to get them to sign off on it. There's a, there's still a do, there's still a a file in the repository called sign-offs mm-hmm.
That has a bunch of signatures in it for Yeah. Let's, we're, we're, we're going to say yes to. Relicensing our changes under creative comments, and then we've carried that forward for the next decade. But yeah, that's it's suboptimal.
Jonathan: Yes.
Kevin: There's actually this weird clause that we tried to chase down that says you can relicense cc 3.0 to CC 4.0, and then CC 4.0 has a clause that says you can relicense to GPL, but the, the, the dots do not connect there.
Ah. I'm, I'm not gonna, I'm not gonna try to go into the details, but it just ends up being, it says you can, but you can't. Hmm. It, it just does not actually work. There are probably certain contexts where you can force that to happen, but you would end up with some kind of monstrosity that's like. CC 3.0 slash cc 4.0 slash gpl.
Yes. And it's like, what's even the point then, right? Because they can just pick the most permissive one anyway.
Jonathan: Yep, yep. Yeah. And I assume, I assume you guys have gone, gone through like all of the different obstacles. What if we tried to make it a B, S, D or, you know, all of these different things and just none of them quite worked
Kevin: well, so what, what CCSA decays to is a permissive license because it's a ShareAlike license that does not have a corresponding source code clause.
So you do have to apply the license and you do have to maintain attribution. But the share likeness of it is very weak because, for example, one of the people that, not the current one, the current one's good, but one, someone that did an A OS. I always get it mixed up. An iPhone port. Mm-hmm. Actually did not release their changes.
They just released the executable. Mm-hmm. Which is allowed by the license, but we're not happy about that. Right. Because we never got those changes. Someone else did that port again, and we have those changes. But as a project we've never really had the resources and interest to try to chase down the iPhone as an official release.
Jonathan: Right. Right. Yeah. I'm not necessarily suggesting you do this, but there would be an option if you wanted to, to try to get like a trademark on cataclysm and that could be used.
Kevin: Nope, nope, nope. Blizzard Blizzard has that trademark.
Jonathan: Oh, oh wow. Okay. So you guys are just at Blizzard's Mercy then, like, please don't notice us because Yeah, exactly.
In in that case, the game will just become dark days ahead. Right?
Kevin: There are something, not a bad name, honestly, it's not, no, it's, it's not worst names. You mentioned this in the intro I'll pick it up there. Several things called cataclysm. So the blizzard expansion is not in any way related to cataclysm dark days ahead.
Jonathan: Right.
Kevin: But there is currently active, there is cataclysm bright nights, which is a fork of cataclysm. Mm-hmm. Dark days ahead. There is a cataclysm, the last generation also. Really nice name that is active, that's a more recent fork and tends to stay closer.
Jonathan: Mm-hmm.
Kevin: And the maintainer of that is more focused on Okay.
Pretty much ca cataclysm dark days ahead. But I have some strong opinions about different things I want to tune up for player facing experience. Sure. We have a very good we have a very good relationship, working relationship with her. Bright nights is more of a schism. A lot of the contributors are people that have actually been banned from the project.
Ah and they went off and decided to do their do own thing. And we pretty much just ignore each other.
Jonathan: Yes, I understand.
Kevin: But yeah, that, that's pretty much there, there have been multiple other forks, but none of them that I'm aware of are active anymore. Mm-hmm. Yeah. I
Curtis: did think Cataclysm Z was pretty cool.
That was the one it's, I think it's a don't think they did much more than the original thing, but the concept was they took Cataclysms original code and tried to update it to be able to be played on modern machine. Right. That it was a cool concept.
Jonathan: Yeah. Cool shape. So we've talked a little bit about, about modding.
What's the mod scene look like for DDA? So I,
Curtis: Colin, you wanna take this one?
Colin: I, I, I would say so. It's, there's a, there's, there's a couple of things we have, we have instituted over the course of the time I've been there, some very strict rules about these are the in repo guidelines for what it requires for your mod to be included with the repo.
And when your mod is included with the repo, it is the responsibility of whoever is making changes in the game to sit there and make sure they don't break your mod with their changes. Mm-hmm. So, but, but for that, we've sat there and said it has to be. You can't just have like your, your normal fallout mod experience of like, oh, this adds an item or something like that.
No, it has to be, you have to be drastically changing the setting gameplay loop something. So we have we have three different main magic mods we like to call them. One's psychic abilities. One is COGS evangelism. And then I have edra evolved, which is kind of a, an X-Files world of darkness, urban fantasy.
Inspired, inspired one. And then we have our core distant sci-fi mod, which is aftershock, which is not even set on earth and doesn't have zombies. And it is. It is set on a a half like planet and your, your, your biggest issues are resource management to stay alive in the freezing cold. And then there's, there's, there's somebody created a, there's, there's, there's a mod maker who, who shows up every now and again and just drops these fully completed world, world changing mods.
Sky Island is a tarko extraction rebrand. There's there's Ina woods where, where it's, it's just an unreal style. Survival survival in the wilderness and unreal world, not unreal. The shooter. Yes. Yes. Unreal. Yeah. I don't even think about Unreal the shooter these days. So good. All and and then and then even some, some interesting, somebody did the back rooms where.
You're just trapped in these, these endless hallways.
Jonathan: It that, that's something interesting about the engine. It's kind of at the same time, I don't wanna say simple, that's definitely not the right term, generic enough that you could do all kinds of crazy things with it. Oh,
Colin: the craziest thing probably is Berry who, who Kevin mentioned earlier is they created isolation protocol, which is a arcade mode of you are fighting from like level to level in a lab and there's like mini bosses and it's kind of net hacky where you can like, talk to the AI that runs the lab and, and maybe earn some, some piety and prayers from it kind of thing.
Huh.
Jonathan: That's cool. That's really cool.
Kevin: So from a project check management point of view, this whole thing was set up because when I did the fork and I was first thinking about mods actually after the Kickstarter, which one of the big features was a mod manager I looked at Linux kernel stuff. Mm-hmm.
Because I'm a huge kernel nerd. And I took their policy on contributions for modules and such where they're like, no, we're not going to have a stable interface that we publish. We can't afford to do that, but we will have a fairly permissive. Process for you, having modules that live inside the main repository and get updated along with the core program getting updated.
So I copied that process and I think it works very well. We have an incredibly ridiculously expansive footprint of what you can mod, and we can't publish an interface for that. Mm-hmm. There's no way, like versioning backwards, compatibility, all this stuff, we could not possibly manage that with how expansive it is.
Jonathan: Mm-hmm.
Kevin: And this policy of, if you want to have an ambitious mod, it has to live in. The repository makes that work because then your, your mods like you see with like Minecraft all the time. You don't get a version bump and all of the mods just don't work anymore. And everybody has to scramble
Jonathan: Yeah.
Kevin: To update to the latest or they just don't stick on an old version.
Mm-hmm. So instead we, the, the core project maintainers will go. Do these little cleanups where it's like, oh, well we changed the name of this flag, or we added a new flag that the workflow is better and we'll just go mass, edit all of the in repository mods to keep them working.
Jonathan: Oh, nice. That's very cool.
So a couple things. One mashed potato and chat says, I'm got my eye on a Twitch channel streaming this game right now. Gizzy Hypno is, and I've got him pulled up. He is indeed playing cataclysm right now on Twitch, which is fun. How do you guys have an idea of like how many people stream and, and play for YouTube in various places?
Kevin: We, we hear about it on and off. I don't keep track of it very well, but I will say based on how the game presents, I have always been shocked at how. Popular it is. One, one fun fact, the maintainer of the last Generation is a YouTube streamer.
Jonathan: Okay, cool.
Kevin: And she started streaming, let plays of cataclysm, and then she ended up making her own.
Jonathan: That's great. Let's see, where was I gonna go next? So you've got a question here that we can, we can quickly cover, and that is what does what does it look like for a c plus plus novice to get involved in the project? Oh,
Curtis: I'd love to answer this one. Yeah. So in 2017, right? I, I, I had taken a break from computer programming and engineering for quite a while.
Like, I, I, you know, done it for a little bit, but it'd been five plus years, right? Mm-hmm. I'd taken maybe a c plus plus 100 level class. Mm-hmm. And I, and I'm like, I jumped into the Discord at the time and I talked to it was Mark actually. And I'm like, Hey how do I get started? Like, he's like, yeah, here's, here's this documentation.
And like we go and I went to the page and GitHub and it was, it it was a really well put together explanation of how to set up a visual studio. 'cause I'm a Windows user. Yeah. So I'm like, all right, cool. I go through all the steps. Hey, you know, I, I can't. Can't get this working. And, and they, everybody in the channel who was the senior developers at the time were very helpful.
They were like, yeah, we'll help you out. Very cool. You know, you just, you just change this, you just do that and then get it working. And then, and then I, and I ran it. I'm like, all right, great. So, you know, my first major project was actually the food system. I went through all of our food and I changed it from like some hunger value, which is just hand wavy.
And I put calories in it. I'm, oh, nice. Let's just make it calories. I'll go to the, the USDA website. Mm-hmm. I'll look up portion sizes, and I'm like, okay, cool. 250 milli milliliters is a metric cup. We'll, we'll just call it a cup. That's fine. And then we, we went through all of that. That was a two or three month project.
Yeah. But I went through all of the food and like, that was actually A-J-S-O-N, but. I did a little bit of the c plus plus in there. I'm like, okay, well how do I change the calories from hunger to food? And I found the little spot, use the search and search and destroy. In my in my IDE and really as a c plus plus novice, you have to think about scope.
And this is the hardest thing to do when you're starting out. Mm-hmm. Is, okay, what's the thing I want to do in this? Oh, I want to do this really cool thing. I'm like, alright, great. Now what is the step below that first? Yeah, yeah. What's the step to get to that point? And once you realize, okay, this is the base level of the thing I want to do, that's the easiest maybe for you to get your feet wet to get a change merged.
It's two lines of code and you make a pull request because the pull request portion is also an important. Step to getting, to becoming a contributor of the project. Mm-hmm. It's its own thing that's separate from the c plus plus part. It's separate from the JSON part. And it's always like, whenever, whenever I mentor somebody through this in discord the, if you've ever made a con contribution, you can get a purple name.
So if I mentor someone who has a white name which means they don't have a role through it, I'm like, all right, I'll help you. Like, this is how you do the, the pull requests and this is like the most important part. So you do it this way and you have to follow those. Otherwise, the next time you're like, oh, I wanna make the second PR before my first one's merged.
Well, how do I do that? Like, well, did you do it the way I told you or did you just kind of edit master, i, I got a little off track of the c plus plus portion, but basically it's a matter of starting small, starting with a few lines at a time. Find a mentor in the chat and if you're making a mod or if you're making a mod or making an adjustment to the mod mod development chat or in the dev help chat, people are very helpful in our community.
We've been fostering that. Like, we're all in this together. Like it's, it's a 2000 contributors for a reason. Yeah. Yeah. That's really good.
Kevin: And what, what makes that work is if you wanna come, if you wanna show up and make an arbitrary change, that's not something. Crazy. We did actually have a new contributor come along and go, I'm going to add a system where like Minecrafts, where you can go to the nether and it's a whole different dimension.
We actually had someone swoop in and do that and it's like, what? Who is this person? Where did they come from? But usually people do not have ambitions like that.
Jonathan: Right?
Kevin: Most of the time if you wanna ma add something to either to the core game or ahad. Like 95 plus percent of what you want to do, you can do in JSON.
Mm-hmm. But you've got that little rough edge left and that will get you to have someone painfully walk you through the process of writing like three lines of c plus plus. So you can bridge that last gap. And then maybe the next time you write a few more lines and before you know it, you, you know how to, before you know it, you're writing an inventory system.
That's how
Jonathan: they get you.
Kevin: It, it very intentionally is that's how we get you, I call this weaponized Cunningham's law, like we have a super Jan system that you can do whatever you want in. But the Jan is part of the point, like there are, there are rough edges to file away at everywhere. So someone will, so we put out the quote, wrong answer of it being jank and then someone comes along, files it off.
And we're like, ha, you're a contributor now. That's great. Get in the Minecart loser. We're maintaining things.
Jonathan: That's awesome. Alright, so I gotta ask you about Herbert. Tell me about Herbert.
Kevin: As in just the most recent release.
Jonathan: Yes. The one from like two years ago now.
Kevin: Yeah. No, we're bad about that. I'm very bad about that.
I have, I've had life, life things getting in the way, so I haven't been very active and when I'm not very active, releases don't happen. Oh my God. What in particular? It's been so long I couldn't even tell you what the major features are. We're actually sitting on, do I right now, that we want to push out the door.
Jonathan: Mm-hmm.
Kevin: And like, like I said, I'm, I'm just not very active. I, I, I've tried very hard to. Document and automate enough of the release process to where someone else could hypothetically do it. But then it, it just doesn't happen.
Colin: The I am goo, I am gooey, is the we're, we're trying to, that that was the biggest rollout.
And it was only, only just barely starting. For, for Herbert was where we're at the moment or, or prior to, prior to. I'm gooey. All of our, every single menu in the game is handcrafted. Meaning in code. Yes. So there's, if you want to do anything that requires a new menu, you have to handcraft that new menu.
Mm-hmm. And so, so part of, you know, and that, that's created a lot of like, legacy things that just never get changed because, well, if I have to go in and, like, if I want to combine these things, I have to delete two menus and create a brand new menu. The skillset that aligns with creating good menus and the skillset that aligns with creating good features are apparently not always in, in, in the same person.
Right. And so, and
Curtis: who wants to just refactor something? Anyway,
Colin: so, so that was kind of the, the big thing of like sitting there and going, okay, let's create a repeatable system for adding systems and adding, adding things that the player can interact with in the game. And so that's kind of one of the biggest, biggest changes that was happening in there.
I would say also, you know, EOC really our scripting language really came into, its, its kind of core at that point. We, you know, we've, we've had, we can literally like create things now that are, that there are missions that if you do not complete them as a player. They automatically will, will sit there and roll a dye and go, how did this mission end?
Somebody else did it.
Jonathan: Mm-hmm.
Colin: In the world what happens now? Yeah. And so like different part new map map locations and faction locations will appear or disappear based on, on what you didn't even do at this point in time because of the scripting language that's, that's really come into to play and stuff like that.
Mm-hmm. So,
Kevin: so I, I actually opened the change log to remind myself of this ancient history. So the big things that happened with Herbert, where we have a kind of biome system where it used to be like you're, you're playing on an infinite plane, right? Mm-hmm. And everything's the same no matter where you go, but we changed that.
To this directional biome thing where if you go east, it will get more and more watery and eventually turn into an ocean. If you go west, just as an example, I can't actually remember, there's more forests and then north, south or something. Was south just the city. Okay. Further east is more cities and you eventually get to some very large ones.
So that sort of thing where the, the the environment is a little bit more dynamic. And then we pretty much finally wrapped up what we call 3D vision. So if you're familiar with the word fortress, they had this thing where there was a a 2D thing where it was on a plane. Mm-hmm. And then. Okay. We're going to basically stop issuing releases for like three years or whatever it was, and we're gonna come back with 3D Dwarf Fortress.
We basically did that same thing and it took many years and many releases. And Herbert is the first release where it's basically done, there's a couple of rough edges here and there, but it's just by default. Like if you're standing, this was like the, the use case. You're standing in the, in the window on the, like fourth floor of a building.
Jonathan: Mm-hmm.
Kevin: And there's a ard of zombies outside and you've got a rifle and you can start. You know, tapping the, like, especially the, the extra dangerous ones, right from up there. Like, and you couldn't do that before. You could, it had this system where you could be in different elevations, but it was literally like the other levels of the world stopped existing while you weren't there.
And now it's has this cube that's actively updated and there's, there's the system for three dimensional field of view and everything that ends up being very expensive. And it was hard to get it working well. That's the like core feature changes. And the thing about it is when we do a release, we pair out like 90% of the changes when we make the change log.
And then the change log is still 2000 lines long. It's this ridiculous accumulation. Yeah. Of all of the little things that happened over that couple of years at it, it in actually an incredibly high rate of change.
Jonathan: Mm-hmm.
Kevin: And it's basically a new game every time. Now if a zip up to dot I, what do we got?
We never did the highlights. Oh no. High. So I have no idea. So yeah. So we have this 2000 lines. Go look at that. But yeah, I can't even remember what it all was. It's all crazy. Yeah. Like I'm thinking about the most recent stuff, but they're not. In there and they're gonna go into release you know, like a year or more from now.
And what happens is a huge number of people, including Downstreams, that are playing on you know, Debbie and packaged or arch packaged or there's a flat pack.
Jonathan: Mm-hmm.
Kevin: They're pulling periodically from the experimental releases, not the release releases. Ah. So we do this, we do releases as a punctuation thing, and one of the.
Things Is it lets, the translation projects keep up because there's either five or seven languages that have full, well, that have full coverage. Oh, yes. Yeah. Yeah. There's like 14 plus that, that have some amount of coverage. Mm-hmm. Even a significant amount, but there's, there's about seven that have full coverage.
And that a, a formal release gives them a chance to catch up because otherwise it's basically impossible. Yeah. And then it also gets us to just stop and focus on bug fixing for a while. So that, like you, you have players that are not tolerant of something might break and we don't want them to not be able to play.
So the, the stable releases fill that need also. Mm-hmm. Although we're not, we're not. Good at getting 'em out the door. They should be, they should really be going out at like a six month or maybe one year cadence. Mm-hmm. But we just have tried the six months before it. It's
Curtis: UI think the best, the best cadence we managed was one year, and that was with, with erk kind of like pulling the reins and like leading the charge, but he's got some stuff going on as well, so, yeah.
Jonathan: Right. So if somebody wants to jump into the game at this point, where would you point them to? The latest? I am, I am gooey release candidate.
Kevin: I would probably say the dot I release candidate for the first, so we, we actually do have those auto building. Mm-hmm. So that's quite stable. It's had a lot of, we cut off features and then literal months of just bug fixes on top of it.
So it's what, eight months old now behind experimental, I think. Probably more because I'm bad with time, but it's, it's very, very stable. So that's actually what I would recommend. People go to, we just, I've been thinking about this actually separate from, from this interview and like we just, I just need to.
Shove that out the door.
Jonathan: I, I will say that I have been playing the h release. I went and I grabbed the latest stable. Imagine a lot of people do that when they go for the download on GitHub. So I'll have to try again with the I and see, see what's at, and there's
Kevin: nothing wrong with h It's, it's great.
But yeah, there, there's just so much that we keep piling on top of it. Mm-hmm. Yeah.
Jonathan: Alright, well I think we've been at it for about an hour here, and there's a lot of stuff that we didn't get to, like I was gonna ask. So I was gonna ask Kevin about his drum set and prof, a professional musician, Kevin?
Kevin: No, no, not remotely. That's a I, I'm sure people can pick out. That's a rock band drum set and it's just been buried in the closet and I pulled it out and I've been doing paradis. I don't have it hooked up to, I don't have it hooked up to any kind of system, but I've just been doing drum remnants on it.
Yeah, very, very, very, very, very amateur.
Jonathan: That's fine. And, and Curtis, you are a you're a fellow tabletop enthusiast, right?
Curtis: I would say so, yeah. Absolutely. I've been getting into like RPS a lot Oh. Relatively recently is my tabletop of choice. It's got that modular feel the same kind of deal as the the point buy system mm-hmm.
That we originally had For DDA, you spend some points on your character. It's less, it's less than d and d 5.0 in terms of get, pick it up and play 'cause there's a lot of stuff you gotta learn. Yes. It's a D six system, which I prefer actually over the D 20 systems. And I've played I actually played a tabletop with Colin for a little while.
While we had some time, I believe that was called aspirant Aspirate. Yeah. Mm-hmm. Where a fellow developer of decided, Hey, let's get a cataclysm group. Nice game going. We had a, I think it was five of us we're playing, and and like, it's, it was a, I think, I think they were the one who wrote that system.
It was a very fun game that
Colin: we did. Cool. Actually just finished up finished up our, our, our two years with that. Two, two years of playing that game.
Jonathan: Nice.
Colin: Colin, you've, you've done some publishing of board games? I did. I did. I I with some friends in, in right outta college. We we. We had a party one night and, and created a board game.
And then, and then we're like, wait a second, we can actually, we can try and do this. And Kickstarter was a thing. There was, there was the Rio Grande game. They had, they had a, a tournament at the time where they would, you would enter your, your board game for competition. Mm-hmm. And they would had regionals and you would go up through that and eventually you'd go to Navy Pier up in Chicago if you made it all the way to the top.
And we made it to the top. But our game was not in their family friendly genre. It was a mob Mafia themed Kill Your Buddy game. And and, and the, the owner of Rio Grande was like. If I had an imprint for non-family games, I would be publishing your game. But this game needs to be published. Find a way to get to it.
And so we, we looked around and, and kind of when we reached out to Kickstarter, they didn't have much of a board game section yet, and they were like, we are really pushing for a board game. Please, please submit your game there. We got it published. We we had a you know, did, did well. Were able to get everything published and get them delivered and things like that.
But did not plan ahead enough to understand how much money it would cost to do a second print run. Ah. Because, because that second print run, not knowing the intricacies of things, you know, we, we had thought distributors would like pre-buy and things like that, and that is not the way the system works.
So we had distributors who were like, we'd love to have more of these, these copies. They, they, they, they did well, and and now I think we're a, a, a vintage game on on board Game Geek. That's great. I see, I see, I see copies of it selling for several multiples of what we originally sold the game for.
Jonathan: Yep. Yep. That's funny. Alright, so business pitch for you guys, take cataclysm and make a board game out of it, or tabletop game out of it.
It would fit in the license. It would, it would. There you go. That's
Kevin: true. I've had probably five people contact me by email saying something along the lines of, I wanna make a game. I wanna make a, like a board game. I wanna make a, i'm gonna write a novel and I want to use your setting. And I'm pretty much like, here's the license.
It pretty much lets you do whatever the hell you want.
Jonathan: Yeah.
Kevin: Also, like, people don't understand this. If you wanna go write a novel that captures how you feel playing the game, you don't have to ask for a license. That's not how copyright works. Mm-hmm. Not a derivative work. Yeah. You, you just like, how you feel is how it makes you feel is not the thing.
Like details about the setting. I mean, not to mention the fact that the, the details of the setting are like, it's today, the apocalypse happens today, and then the game actually starts a week from now and you wake up after the world's ended. But, but it's this world to start with. So it's, it's, the funny thing is it's nobody does that.
Jonathan: Hmm.
Kevin: But it's not very distinctive. Right. We're not actually making anything up, like we actually pull. So technically it's set in Massachusetts. Mm-hmm. For reasons and like we pull stats from the Massachusetts like. The official government departments in Massachusetts to set things.
Jonathan: That's great.
Kevin: So, so one very contentious thing is there's a lot of guns, right?
So we actually pull the stats. I have this giant database, it's like a million lines long. That's all of the guns that have been sold in Massachusetts for the last 20 years. And we use that to make the decision, like, is this gun common enough to, to meet the cut and go into the game?
Colin: That's great. We still have 385 plus game guns in the game.
Kevin: Well, yeah, yeah. A lot of people yell at us about it. Like, oh, you removed the pan core jackhammer, it's iconic. I'm like, there are two of them in reality and neither one of them is in Massachusetts. What are you talking about?
Jonathan: I love it. I love it. Alright. It's been a lot of fun. Thank you guys for being here.
We get, we got a wrap? We got a wrap. We're out of time. I've got another meeting here in about 15 minutes too that I gotta run off and get to. But I appreciate y'all being here. It's been a blast. A lot of fun to talk about the game.
Curtis: Thanks a ton. Thank you. Yep. Thank you for inviting us.
Jonathan: Yeah, absolutely. I've gotta ask each of you what your favorite scripting language and text editor is.
Curtis: Ooh, that's a good one.
Jonathan: We could start with, we could start with Kevin. We'll go Kevin and then Curtis and then Colin.
Kevin: Python and Emax. Python and emax. All right. Curtis Lua and
Jonathan: Visual
Kevin: Studio Code.
Colin: Okay. Okay. Hey, Colin. I would, I would have to say that EOC, because I'm the novice here. EOC is the only scripting language I've ever worked with.
And, and I use, I preferred Adam and now use Sublime for my, my
Jonathan: text editing and things like that. Nice. We have three guests and we got three completely different answers. That is a lot of fun. All right. Awesome. Thank you guys. You actually got four. Thanks. Thank you. Alright, so that was Curtis, Collin, and Kevin talking about cataclysm DDA, an open source of video game that you can, you can run over SSH Dang it.
And it's a lot of fun. I am only a tiny bit addicted, but I, I've played it enough to know that it is a whole lot of fun. The plan is that next week we're gonna have someone from QT to talk about that ecosystem and all of the things we love there. And then we've got a break and then we're talking with, I believe it's KS Baskar about Yara db, which is a returning guest from a long time ago. We'll see what is up there. If you wanna find more of my stuff you've got, you can come to Hack a Day. That is where the show is hosted at these days. That's also where my security column goes live every Friday morning.
And then there is also the Untitled Linux Show that's deliver at twit twit TV slash uls and would love to have you there as well. We appreciate everybody that's here, those that watch and listen that get us live and on the download, and we will see you next week on Floss Weekly.