Dwarf Fortress Roundtable - Ep. 36: In which Dwarf Fortress Storyteller Creator Ralph Talks Programming

Episode Date: August 30, 2020

Today we deep-dive into a new tool designed to make visualization mods easy to create. Ralph joins the gang to tell us all about Dwarf Fortress Storyteller. It's an API that makes it easy to access D...F Legends data and present that to the user. Dwarf Fortress Storyteller HomepageDF Storyteller Gitlab RepoDF Storyteller Image GalleryA link to Ross' RPG Avarice, and our episode that talks about itImages from Bay12GamesDF Talk Episode 25 Support Dwarf Fortress Roundtable on Patreon Musical Attribution - Thanks so much to Kevin MacLeod for making his awesome music available to content creators! Skye Cuillin by Kevin MacLeodLink: https://incompetech.filmmusic.io/song/4371-skye-cuillinLicense: http://creativecommons.org/licenses/by/4.0/ Folk Round by Kevin MacLeodLink: https://incompetech.filmmusic.io/song/3770-folk-roundLicense: http://creativecommons.org/licenses/by/4.0/

Transcript
Discussion (0)
Starting point is 00:00:00 What's the password? Sorry, I missed that. Swordfish. Oh, wonderful. Thank you. And your mother's maiden name. I keep forgetting that, too. It would be Johnson.
Starting point is 00:00:13 Great, thanks. And I was going to send you a birthday gift this year. Could you remember? Welcome to Dwarfortures Roundtable, the podcast for all things, Dwarfee. I'm Jonathan. I'm Roland. I'm Tony. And we are joined today by Ralph, who's the creator of Dwarf Fortress Storyteller.
Starting point is 00:00:37 Welcome to Dwarfurtress Roundtable, Ralph. Hello. Thanks for having. So, hey, guys. Ola. We have a full house today, which has been a while since we've had that happen. Mm-hmm. So have you guys had a chance to play Dwarfortress the last couple weeks?
Starting point is 00:00:53 Well, I have very minimally been dabbling and doing all sorts of excitement. things with Adventure Mode and in Fort Mode and Old Worlds. Roland, you said that you introduced a new person to Dwarfortress, right? Yes. I actually got somebody to at least want to play Dwarfurtress after talking about adventure mode. Actually, about one day after we did that adventure mode thing, you remember that? You remember that?
Starting point is 00:01:25 Like, the next day, Monday, I talked in school about Adventure Mode. and she was very, very interested in that mostly because I said that you can pet animals so she's going to try other than that I also played some DF myself but it seems that my
Starting point is 00:01:49 current civilization died and now I have to make a dwarven breathing program to get anywhere so my fort is just running in the background in hopes of like getting someone pregnant I'm stuck at 24 and I want
Starting point is 00:02:06 at least 80 we'll see cool cool yeah I I've been doing a fortress myself and I built a brand new world that I have named Jonathan's permanent long-term
Starting point is 00:02:22 LTS world so that I will just catchy to use that hopefully what's that? Catchy Yeah. Catch your name. It's good branding.
Starting point is 00:02:31 It's a world's long term, or the fortress long term? That's the world long term. Yeah, the fortress, I suspect, will crash and burn before too long because my fortresses typically do. But I've made a point again to name my important dwarves so that if things start going bad and I retire the fortress, I can keep an eye out to watch them migrate into my next fortress. you have been doing a lot of development work Ralph have you had a chance the last little bit to play to play some Door Fortress and just play
Starting point is 00:03:05 it's been a while since I actually played and then I played adventure mode because I was researching for a D&D campaign I'm running so I was walking around the town that my campaign is going in and looking for what quests and stuff the civilians give out and for the rest I've mostly been looking at legend files I've exported some of my old forts
Starting point is 00:03:31 that were still in like the previous version of a dwarf fortress and they seem to not have died before I didn't want to play and start of the new fortress. So you've been playing dwarf fortress for quite some time, Ralph, right? Yeah, I think like same as everyone, like played for a little while then stopped and do some other stuff and then I came back to it later. That's, I don't know, like Mola five years ago.
Starting point is 00:03:58 So now, then I, when I started it, I can't imagine how I started it. Like, I think someone recommended it to me or I found it somewhere. I don't know. Everybody, it seems, I don't know that there has been anybody that I have talked to or that we've had on here who said, yeah, I picked up to a Fortress, and I loved it immediately, and I started playing, and I've been playing ever since. everyone, it seems, does at least one false start with it. Am I right, guys?
Starting point is 00:04:28 Have we had anyone on here who didn't say that? I think everybody has... I think everyone does, yeah. There's always the false start. Yep. No, for almost certain that's the case. Well, that's a nice little segue into the pictures that the Dwar Fortress Development people have posted to Steam,
Starting point is 00:04:50 and they've also posted it to the Bay 12 games site. They've shown, they've added some Embark menu improvements that they're displaying. So with the user interface improvements, hopefully that start playing, you know, find it impenetrable, and then start playing again after a few months. Maybe that will, that cycle will stop. We can hope. So Ralph, did you see the screenshots? Yeah, like there are a lot of.
Starting point is 00:05:20 like different type of backpacks and stuff that I saw in there. But wouldn't it be easier if you just have like backpacks and then like first of different types before you have like this backpack is made from a yak? This is, this one is made from a reindeer. Like the scroll bar is not that large, but isn't like you have first the types and then the materials? That's a really good point. I ran into something like that whenever I was using the meth launcher. Whenever you go to choose a pet and embark, you go to pick a dog,
Starting point is 00:05:54 and there are so many kinds of dogs that it's like five pages of dog breeds that you have to pick from. Oh, that's the MF one. Yeah, you could have like Alsatians, and yeah, I mean, he went deep in that. Powered to him for being one heck of a detail-oriented dude. But it does make it quite inconvenient when you're sitting in the menu trying to find, you know, a donkey. Yeah, and let's be honest, if I embark on a mission, Like, I don't care if my backpack is made from turkey leather or wolf letter.
Starting point is 00:06:24 What? How can you sit there and say that? Well, all I can say is exquisite cat leather is all I care about. The finest cat leather in the land, that's what I want. I usually just go for leopard leather. Ooh, a man of culture, I see. I just want my shoes to be made from cat. And this isn't necessarily going to be the last...
Starting point is 00:06:49 version of it, hopefully. But, yeah, that is a good point. I spend a lot of time just using, or a lot of the times when I play, I just use the, you know, like the easy-peasy start or whatever. I don't, or I've created my own that I sometimes use. So I don't, I'm not that picky about how my starting and barks work.
Starting point is 00:07:12 I don't even, like, as long as you've got some of the basics, it doesn't matter. You can just kind of go with it. It's, You know, I don't, I'm saying, I don't think I'll spend a lot of time on that particular screen, to be honest. Ralph, what do you think of the previous, the graphics style that they're doing for the monsters and the landscapes? Oh, I really like it. I really like it. I really like the whole Steam release with all the graphics, especially the map. I love maps. So I really like how the map looks now. It's going to look with Steam release.
Starting point is 00:07:47 I really like what Meph and May Day are doing with those sprites. They are so cool. I just think the details there in that pixelated way. I like the fact that they've kind of unified and got a style gone. I'm stoked. I think it's going to be cool. And I also will take it to one more place, which is if they get modding sorted out to be relatively straightforward,
Starting point is 00:08:12 as in you don't need like a master's degree or anything in computer science to be able to mod the game, I bet you the mods on Steam are going to blow up like they have with Space Door Fortress. Rimworld? Yep. I don't know. Have you looked into modeling? Yeah, it's not too hard.
Starting point is 00:08:33 Yeah, I mean, I don't think it's too hard. I don't think you need a master's day of computer science to figure out how to do. You're absolutely right. That was a hyperbolic way of describing it. But I do think it's, you know, I think it's more cumbersome. and then, you know, I look in the shop and I can click and add things. You know what I mean? Like, it requires you to edit text files, which can be a little scary for some people, I think.
Starting point is 00:08:57 Yeah, if you just go to the, like, the Steam page, and you have, like, oh, these are the Beatles from Crook Smash, and then just adds. That's much easier. Right, exactly. Oh, that would be cool. A tile set based on Krug Smash's artistic drawings. It'd have to be a very high resolution. I wonder what size tile set.
Starting point is 00:09:17 The biggest I've ever seen, I think, is 64 pixels. I wonder what the largest the game would be able to support would be. Like full screen as one tile? Well, no, not necessarily, but with 4K monitors, you can certainly have a 128 pixel tile for a... Yeah, 128 pixel image for a single tile with a lot of good detail in it. Does the viewports change?
Starting point is 00:09:47 the frame rate, like, by a lot. Like, you get framed at earlier when you have, like, big screens, or isn't that affected? I don't think... Tony, you play on a 4K monitor, right? I do play on a 4K monitor, yep. But I use the 32-by-32 tile sets. They look good. Yeah, but does the game run slower on your 4K monitor than on the full screen?
Starting point is 00:10:10 I mean, I don't start having speed problems until I hit about 100. 90 people and a 4, 200 people, then it starts kind of chugging along. But I'm pretty good. I can, yeah, I don't see any problems. It doesn't seem to have any sort of impact. So I don't think it's doing any sort of GPU or any sort of high tax anything. I think this is a normal CPU stuff is still, I think that becomes a problem before the graphics would. I think that's what I'm trying to say.
Starting point is 00:10:41 Let's hope it's not on this team release either. A little problem because there are like 15 layers for every dwarf. that has a render, so I imagine there was, like, much more going on. Yes. Yeah, once it got loaded, though, if then they should just, most likely just be there. Even a 16-frame animation at 32, at 32 pixels isn't going to take up a whole lot of RAM, wouldn't think. Well, in any case. I don't know the details of how it's implemented.
Starting point is 00:11:12 Yeah, I don't either. Soon we will know everything. well I'm not even so sure about that I think that they may end up keeping the how they implemented the tile set maybe they'll be fairly open with that or as open as they can be because it's not actual game content
Starting point is 00:11:31 it's not gameplay it's display mechanics but yeah there's a lot of secret sauce and Royal Fortress that they are guarding that's fine because I think that we've talked about this before I really don't mind games being closed source for various reasons
Starting point is 00:11:49 but one of the biggest ones is NetHack is an example of something that you have that people can go into and all of the secrets are just there to be known so I appreciate a lot of the a lot of the secrets yeah I think it's probably
Starting point is 00:12:05 good on two fronts one like you don't want to over promise and then under deliver because then people are just kind of like oh you know what I mean and so I think there's some of that I think he probably has huge aspirations for what he wants to do. But at the end of the day,
Starting point is 00:12:19 it's sort of like, how much can I get done before I need to actually put out a release? Because otherwise, I think he'd never release anything. So I suspect that's some of what's going on. But also, I think it's just like maybe he doesn't even know what's going to make the release.
Starting point is 00:12:36 Or, you know, it's like he might have spent six weeks working on something, but it didn't quite come together like he wanted. So I suspect it's much more of a, I would say, a true agile, software development, as in he just sort of works on what he feels like working on that day. And I think that's awesome until the steam thing started happening. Yeah, and I bet you as soon as the steam thing, as soon as Steam release one happens,
Starting point is 00:12:59 I bet you things kind of return back to the way that they were. I think he's just trying to get the steam thing done. And then he can be like, okay, now I'm going to go back to this. It's probably going to like take a small break first because I can imagine that the steam thing is really stressful at the moment. you bet i'm sure that that dude is probably just you know not sleeping he's really trying to i can you can tell
Starting point is 00:13:26 just by this you know the pace at which they're sending out updates that they're definitely like he's definitely putting a lot into this right now yeah ralph do you have a feel for when you think he's going to release the uh steam release uh well i cannot look under the hoods what they have implemented or what they have not done but like i like this is pure guessing yeah the screens that he published he said they were already implemented into the game so that means like most of like the core
Starting point is 00:13:53 work is already done like they have screens they have the graphics on the actual mapped like the actual tiles done so most of the hard work is done now is just like a lot of like all the different sprites all the different
Starting point is 00:14:08 edge cases like of course things like the military screen and stuff like that they have to think about how to rework that and how it will actually look. So I think there are still quite a lot of things to do, to be honest.
Starting point is 00:14:24 That military screen is going to be tough because there is so much detail in that that you really can't gloss over, just the way that the squads work and equipping the squads and things. Unless they just do a pretty representation of
Starting point is 00:14:40 the current actual interface, I would suspect that they're not going to be able to change the they'll be able to change the visuals, but probably not the functionality of the military, at least until he makes changes to the way the military works in general.
Starting point is 00:15:00 I think they will probably overhaul it all at once, because it's sometimes more difficult if you do it in two stages than just doing all at once. Maybe we'll have a full-fledged military screen that's much nicer. But then again, I've not seen anything
Starting point is 00:15:13 about legends or adventure modes, just yet so narrows also some things that still have to be worked out, I imagine. Yeah, I think the military stuff is going to be really confusing for people when, if they're not familiar with
Starting point is 00:15:29 it, and that's okay, you know, whatever, people figure things out pretty quickly, but I feel like that could, I mean, I get confused and I feel like I'm still too dumb to get archers working properly. All I can get them to do is hawks or crossbows of people. I want to ask
Starting point is 00:15:45 that guy who gave us the details on the archers to be on sometime soon, because I think his name's Byron, because his write-up for the archers was really nice, so he would be interesting to talk to about his procedures, and beforehand I'd like to see if I can implement his procedures, because I would like to have archers that actually arch. I usually just close my gates, have like a wall with arches on top, and then it cannot run out and hits the creatures, and then it will actually shoot. And it seemed to work fine on my ends. Yeah, this Byron person indicated, though,
Starting point is 00:16:24 that if you train them correctly, then that is something that you won't even have to worry about, that they will work the way you would expect them to work and not try to run out and bash them over the head with their crossbow. I think that the biggest thing is you want to make sure that your archers at their highest skill level is with archery and not with, say, a mace, because then they will go out and try to use the crossbow as a mace. Oh, right.
Starting point is 00:16:52 It is a recurring theme on this podcast to get lost in the minutia of archery. There's just so much there. Hey, did you notice that they put out another Dwar Fortress Talk episode? I did. I saw in the Reddit comments, they're back. it's going to be a regular thing now. So that's cool. I like to imagine that he came on onto our show,
Starting point is 00:17:18 realized that he really liked talking about it and then went ahead and went back to his own thing. Probably not true, but I like to imagine that, yeah. I think it probably helps have that encouragement. I think it probably did help. While we talk about it from the players' point of view, we can't even begin to talk about the development side, really. I mean, we talk about what they tell us, but we can't get into his head, of course.
Starting point is 00:17:45 Nope. Yeah, like, looking into development is really interesting sometimes, like seeing how it works under the hood. And that seems to be a lot. Anybody else have any development, at least dual fortress development? We're going to talk all about dual fortress storyteller development here in a moment. But do anyone have anything else they'd like to add or bring up about the dual fortress development? reports and progress
Starting point is 00:18:13 all right I will take these silence as a indication that we should move on okay this segment has been brought to you by Eurist's mosquito brain flower because they aren't mosquito brain biscuits without mosquito brain flour
Starting point is 00:18:33 the most important thing about fortress keeping is remembering to seal the ocean plug before fall So Ralph, you have developed a utility called Dwar Fortress Storyteller and would you just tell us a bit about it. What's it for? Who's going to like this? Well, I hope a lot of people are going to like it. I didn't mean it quite the way that came out there.
Starting point is 00:19:04 Yeah, so yeah, who's your target audience for this? it's basically something that you put like it's replacing it's something that works in between dwarf fortress and a visualizer so in the past you have like a legends viewer and legend browser and there are some other ones
Starting point is 00:19:25 but those are the two most popular but when when the fack or dwarf fortress has an update like the XML that it exports changes a little bit, so there are some bugs in there. And visualizers have problems with how the changes happen, so they have to be
Starting point is 00:19:47 updated to work with the new versions, and that sometimes takes a while because they are not, well, maintained anymore or, like, heavily maintained. So that's basically the problem I wanted to solve because, well, not having a legend viewer is annoying and I really want to look at all my legends and there are way more interesting stuff in there than you might imagine. So this is basically something that reads all the XML files, all the Legends files and creates a small API that you can use to request a list of all the
Starting point is 00:20:26 historical figures or a list of all the events that happened or you only want to look at, I don't know the artifacts that are created in your world and see what their descriptions are. So you can very easily look at those things. I probably should have prefaced this segment by telling people that this is going to be developer heavy. And for those of you who aren't programmers, an API is a set of commands that you can send to one program to let it interact with another program. It's probably the best way to put it. Yeah, indeed.
Starting point is 00:21:02 ask a simple question like give me a list of all the all the artifacts in this world and then it will just return like a file with all the artifacts and you have like different commands for different things so yeah so yeah I think it stands for application programming interface or something close to that yeah so this is an HTTP API is that right yeah a restful API is usually describe us that there is also a GraphQL API, but that's not fully implemented at the moment. Oh, that'd be cool. That makes like requesting relations between data a little bit easier, but it's not fully implemented. But that's promising.
Starting point is 00:21:47 I'll just put it that way. Does Restful imply that you can actually write to it as well? Is there, can you actually use your Door Fortress storyteller to tweak what's in the Legends data? Technically, yes.
Starting point is 00:22:02 but we're not there yet. We're only in read-only mode. So you import a legends and you cannot change it. You can of course change the database. So when it imports a world, it stores it in a local database and you basically ask questions into the database. So that means that whenever you have your visualizers open and you already have your world imported, it uses like basically no memory and no processing power. So it doesn't actually have to like, look through everything. When you request something, it's very quick to respond back to you.
Starting point is 00:22:40 And sorry if I'm too technical. No, that's fine. Just hold me back. So what I'm wondering is, like, can I just leave it open the whole time? Or is it something that's like, does it make a, does it make a cache of the, you know, is it reading live?
Starting point is 00:22:56 Or is it, does it make a, does it do what it needs to do offline? Yeah, everything works. offline so the API is basically runs from your server but you have like two stages in 12 photos sorry to tell you first tell it I want to import a world and these are the legends file that you just pointed to the legends files and it will basically look through all the files and see what is there and save it to a database and the database is just by default if you use SQL lights it just sort
Starting point is 00:23:31 it into a file, Postgres is a little bit, just a different program, different database. It doesn't really matter for now. But it basically, like, stores everything locally, so it can very easily search back into that file. And then you, like, it finishes with importing, and then you tell it, oh, okay, I now want to, like, view World Five, for example, because you can import multiple worlds at once if you want to. And you can say, like, I want to view World Five. and then the API will start up it will start up in like
Starting point is 00:24:03 three seconds, maybe not even two seconds and then you can just like ask questions like what are all the artifacts, what are all the regions in the world which villages exist or something like that does it have its own export routine I know that you can use DF hacks
Starting point is 00:24:20 to export the Legends data so that I can't remember which one it is either Legends browser or Legends viewer one of the to need you to do the DFHack Legends Export before you can use it. Do you use that same mechanism? Yeah, we use the exact same. The Export Legends command in DFHack.
Starting point is 00:24:41 So you can use that to, like, export everything from dwarf fortress itself and also from, like, DFFC custom things. What data format does that file that it exports sit in? Is it an XML file? Yeah, it's an XML file, both from DFHack and the dwarf Authorses both XML files. so we basically take those two files and look through them and because like the DFHack file that it generates adds more data that is already in the dwarf fortress files
Starting point is 00:25:11 so in the dwarf photo files it will just say like oh this is these are all the historical figures and these are the names and this is a data born and the FHack for example will say like oh they were in this conflict and this happened to that person as well and here are some extra info about the race of the person and stuff like that. So the DFFHack file is basically adds more information, but Dwarfwaters storyteller is written that you can like do anything basically with it. So you can only give it the Dwarfodress file, you can only give it the DFHack file,
Starting point is 00:25:46 you can give them both, you can even give it the images and it will import all the images and it will look through for all the other files. And it will also combine them all into the same thing. So if you ask for all the historical figures, it will give everything it found in the 12 Fortress files, but also in the DFHack files. So we use the exact same mechanism. You've made this API, this Dwarfurtress Storyteller, available to other developers, other modders, so that it will make it easier for them to create utilities that can make Legends access be more user-friendly for Dual Fortress players. Do I have that characterized correctly?
Starting point is 00:26:29 Yes, exactly correct. So I wanted to create a way for other people that are a little bit more design focused than I am to be able to just have like, I don't know, a graph of all the events that happened in the past. And you can very easily like request a data engine just put it in a nice graph. And I think I have some visuals that we can maybe put in. the show notes. Absolutely. Yeah. And also in the latest updates that hopefully
Starting point is 00:27:02 will come out before the podcast goes live but it probably should. That has like a built-in viewer. It's an example and there are some more examples that I put on GitLab to like give people an introduction of how they can create it.
Starting point is 00:27:18 And you don't have to be technically savvy in order to do it. I added a lot of comments and documentation. so it should be easy for people to get started and maybe modify the existing examples. Can you let people know, and I'm trying to look it up here as we talk, but you may have it off the top of your head. Can you let people know what the address is to the repo on GitLab?
Starting point is 00:27:47 Well, just search for the DF Storyteller in GitLab or just go to df storyteller.com. I also bought a domain name for it. And there you have links to, like, where you can download it, where you can find the GitLab on there. There's also a guide we created that basically steps you through how to install it, how to set everything up, how to export a legends from Dwarf fortress and DFX,
Starting point is 00:28:17 and how to add new visualizers. I forever have been looking to get into modding and utilities and development around World Fortress, and I've never actually stepped into it. This seems like it would be a good way to do it. It's really not that difficult. I create most of the graphics I created, or I created it on like three hours or something like that. I like requested a data and mostly it's styling and what data you want to view.
Starting point is 00:28:47 You can view the documentation of the. API also online so it's just a website but it's also like everything is baked into the executable so once you download it you can have your local API you can just easily request the data you don't even have to like well you basically open the documentation click a button that says try try now or just say try and it basically request the data for you and you can view how it looks and also on the side it says like oh this field for example the name of the historical figure in all lower caps sounds easy enough to get started with i hope it is if it isn't i failed in my job so how long have you been
Starting point is 00:29:34 working on this project uh for way too long to honest uh i think i've started this in february so it's six months now so it's been your covid baby right sorry So it has been your COVID baby. Yeah, basically, yeah. It just happens that I started with D&D and D&D session that was based around the Dwar Fortress World, so I did a lot of digging through the Legends files for that. We had a guest on about a year ago who actually created an RPG around Dwar Fortress. It's pretty neat.
Starting point is 00:30:14 Yeah, it's the same I did here. My players, well, we're currently on holiday break because everybody had to go on holidays. But after, in a few weeks, hopefully we'll start again. And we will continue because they were trying to overthrow the government. It was made of goblins, and they didn't like it in their human civilization. And that's also why I started on Dwarf Water Storyteller, because I wanted to view more data in the legends. And it got out of hands real quick.
Starting point is 00:30:50 That actually answered the question that was going to become next. It was going to be what particular event first inspired you to embark on a project like this and create it. So it was a side effect of a D&D session, huh? Well, a D&D campaign. So there were a lot of missions. that I created in there and were still playing in it. And it's a lot of fun to have, like, because all the players I play with have never played Dwarf Hortress.
Starting point is 00:31:22 And so I put them in the Dwarf Fortress world, and it's really fun to see them, like, explore everything. And because all the legends viewers that are used up until now to create that, because Dv's A Fortress Storyteller wasn't created back then, or wasn't finished. It was fun to look around and see, like, oh, this person is a very good liar. So when they spoke to that person in D&D, he was also a good liar.
Starting point is 00:31:54 So it's really fun to, like, look through everything. We're currently looking for more people to create visualizers, because currently you can download Dwarfotter Storyteller, but there's not really that much to look at at the moment. amid the UI is command line, and Windows is not really great for command line utilities. Linux and Mac are way better at that, but hopefully someone will create like a graphical user interface for 440 Star-Teller, so you can more easily start it and don't have to figure out how PowerShell or command prompt works.
Starting point is 00:32:40 Yeah, I think that you're the people who are going to use it, possibly, I don't know, that may be an overgeneralization, but I think that people who would think to use a tool like this API to create a new interface for Legends mode, they're probably going to be fairly comfortable on the command line in any case. Yeah, they probably don't have a problem with the command line. And also the commands are really not that complicated. you have to basically know how to import and how to start the server and those are two commands
Starting point is 00:33:15 you have to know but that's basically it's just that for less technically savvy people it's a bit more complicated just to know what you want to do and how to actually get there a lot of debugging but I hope that
Starting point is 00:33:35 when new visualizers come out they can just include door photo storyteller what's their visualizer and they just make a button that you click and then you can import a world and a little button that you click and then you can start it and view it. So they basically
Starting point is 00:33:50 use it under the hoods but don't have to like use it directly. Are you the only contributor to the Door Fortress Storyteller repo? At the moment not the only one. There are two people who contributed. One that has a spelling mistake
Starting point is 00:34:05 on the read me file and another one already looked into the code quite a lot and you already fixed a lot of linting errors and other problems in the code. And you developed this in Rust, is that correct? Yep. It's a very wonderful
Starting point is 00:34:22 programming language. If you ever, if you're into programming I would highly I would highly recommend learning Rust the programming language. The code for DTF storyteller is also very separated so it's not that
Starting point is 00:34:38 difficult, I hope, to get started when you look at the code. But just as a separate thing, you can, it's a lot of fun. The rest is a lot of fun. I'm most comfortable whenever I pick up a new language. I seem to do better if it's a C-style language, because that's what I'm most comfortable with. Is it a C-style, if you will, language, or is it closer to something like Python or... Oh, no, it's very similar to C. Okay. There's some little quirks.
Starting point is 00:35:11 You have to, like, know that are different from C++C, or C. But it's mostly very similar. You will be very comfortable starting with rest. So if you know C, then you probably won't have problems picking up the language. It's, well, I wouldn't say marketed, but it's mainly marketed as a C replacement. So C++ or C replacement. It's developed by Mozilla, the company that creates Firefox. And now the program language is like open source, so it's
Starting point is 00:35:44 separate from Mozilla. But they started it. And it has a lot of benefits that you wouldn't imagine it has from the start. For example, there are a lot of like tiny things like compiling your code. You don't have to like figure out how make files work and stuff like that. It basically handles that all the other hoods. And it's very easy to install new packages.
Starting point is 00:36:11 When it compels, it includes all the dependencies inside the binary, so you don't have to like deal with, oh, it works on my machine, but it doesn't work on their computer because they don't have this in this library installed. So it's very nice. Yeah, I could actually sit here and go deeply
Starting point is 00:36:29 into the dev because my next question was going to be is it interpreted but then I realized that this isn't a development podcast it's compiled
Starting point is 00:36:38 okay so a lot of this may end up getting cut out and will be available only to the to the people who get the bonus content
Starting point is 00:36:47 on Patreon so but if you're into development rule you should check that out so let's see there was something
Starting point is 00:36:57 else was wanting to bring up back so Roland and Tony got very quieter. Yeah, you know... Let's let you get on with it. It's mostly because I honestly have no idea
Starting point is 00:37:10 what you guys were just talking about. You could have conversed in Chinese. So I'm just going to ask all over again because I don't know what you gave as an answer. so as far as I got was you have something that makes a lot of graphs I have something that makes it very easy
Starting point is 00:37:42 to make lots of graphs so it is more based on graphics and graphs and like no it's not limited to that at all you can have like to just give an example you're comfortable with like Legends browser or Legends viewer
Starting point is 00:38:01 like you've seen those you can recreate those with for the storyteller you can very easily like oh I want the title bar I want the name of my world I mean you just ask the API
Starting point is 00:38:16 what is the name of my world okay and then you fill that in and say like oh I want this here I want the list of all the civilization I have in my world, and then it will just give you a list of all the civilization, and you put them in a list. Then you say, like, oh, but I want also a pie chart, like, I think Legends fewer has it, has, like, a pie chart of how many goblins or humans living in your world. And then you ask the API for, like, oh, give me a count on how many humans or goblins there are in this world,
Starting point is 00:38:48 and then just gives you accounts. There are like 5,000 humans, 2,000 goblins in this world. And when you actually create a graph, then it's very easily just like put in the numbers and combine it with the values. So it's very easy to create something like that. Okay, so I as a user am able to like customize how this program looks to me. Yeah.
Starting point is 00:39:16 So that's going to be cool. I mean, I think you're going to probably, hopefully, start seeing people do some really cool things and then the non-techie folks can kind of just download and use those, right? Is that sort of what I'm... Yeah, cool. Yeah, so I'm just putting some pictures in the Discord. I think there will be in the show notes afterwards. So here you can see some plots.
Starting point is 00:39:42 This is the utility I wrote to, well, for myself to check. if everything is working. So this is just a timeline of what happens in a particular world. So there are two different worlds. One has 1,000 years and the other one has like 100 years or 125 years. And it just shows how many events happened, how many historical figures got born, how many died, how many relationships changed. You can see spikes in the data. And when you see like a spike in the amount of people that died, oh, there's probably something that happens around that time. And then you can look into that more. So, Ralph, correct me if I'm wrong.
Starting point is 00:40:28 But Roland, I think that this project is not going to be as much interest to people who only like to play Dwarf Fortress, but it will be of extreme interest to people who are interested in making mods for it. Yeah, I hope that it is a catalyst to creating lots of visuals around Dwar Fortress. Anything that keeps me from having to parse XML myself, I like. We give it back to you in Jason format. I think Jason is a little bit nicer than XML. And in JavaScript, it's very easy to, like, parse it again
Starting point is 00:41:04 because it always returns valid Jason. Did that answer your question, though, Roland? Yes, I think so, even though the last part was a bit too much again, but yet. it's hard also I really want to urge you to put the last picture somewhere in the show notes because now it actually shows
Starting point is 00:41:29 that there's more than just grass you can like customize things and you can see it's good you know it's good before I was like oh okay we have grass but this is more like I can see
Starting point is 00:41:44 yeah with your permission Rob I probably use that as the as the featured image for the show. And one last question. Sometimes you kept referring to like we when you spoke about the development.
Starting point is 00:42:01 Did you do that on your own or had you help? Let's just say it was 99.9% my own and it was in the last few weeks some people helped with a few things. And I also Some people that work that's debugged it a little bit, so thanks for those people as well.
Starting point is 00:42:22 That's very cool. But if you want to contribute to the code, the code is on GitLab. Give it a try. The most important thing about fortress keeping is relaxing. Just sitting back, letting your fortress roll the way it wants to roll, and picking up the body parts when the chips fall. where they may. We last week started recording our first video series.
Starting point is 00:42:59 It is a, the idea is that we're going to do an adventure mode play-through with me driving the character and Roland and Tony giving me advice on what to do next. So we've got the first hour or so of content recorded, and I have, begun editing it, and I hope by the time this particular episode is released, I hope to have the first episode of that, the first video up on YouTube on the
Starting point is 00:43:26 DF Roundtable channel on YouTube, so be sure to check that out if you haven't. We mentioned that last week on our episode, on our last episode that is, and we've gotten quite a few actual subscribers to the Door Fortress Roundtable YouTube channel, so
Starting point is 00:43:42 that's interesting. I was just about to say everybody should subscribe to. in a YouTube channel. Although right now there's only one video and that was an early live stream
Starting point is 00:43:54 of the episode. But yeah, that will be changing hopefully by the time you receive this podcast in your feeds, you will have new episodes. Sorry, you will have new videos out there to look at
Starting point is 00:44:07 and watch me stumble around a world as a adventure mode character. We can see all the interesting ways Jonathan is going to die All right I think that this might be a good time for us to wrap up
Starting point is 00:44:26 I know that we all have things that we need to do you folks over there in Europe probably need to be going to sleep soon It's hot for a lot It's good so We'll get to bed Anyone don't stay up all late sleep is good for you It's restful
Starting point is 00:44:40 The pun That only a few people are going to to get. Wait, that was a joke? Yeah, Restful is a programming term. It's got to do with how, with APIs and requesting information from web servers. How dare you? Capital R-E-S-T, lowercase full.
Starting point is 00:45:05 Shall we do it? Yeah, yeah. So everyone, thanks for tuning in. Thanks so much, Ralph, for joining us. What was the pleasure? Yeah, thank you. you so much. I'm really looking forward to playing around with this thing. It's going to be great.
Starting point is 00:45:20 Is there a way for people to get hold of you, Ralph, to see what you're doing? Check out a 12-Fotter Storyteller. There's a link to the Discord, and I'm on there quite a lot. So you can contact me through there. Otherwise, just check out the code, create some nice visuals, and if you're not a programmer, it's not
Starting point is 00:45:38 that difficult. It's a good way to get started about programming, I think, as well, because JavaScript's on itself is not that difficult. And If you have questions, just feel free to ask. I would gladly help you. Okay, great. All right.
Starting point is 00:45:52 So with that, we're going to, in this episode of Dwarfortress Roundtable, and everyone have a great week. Yep. See our roles. Bye, bye. Bye, bye. This has been Dwarfortress Roundtable, the podcast for all things dwarfy. You can find all our past episodes at DFRoundtable.com.
Starting point is 00:46:13 Please stop by and leave a comment or suggestion in the comment. section for this episode. While you're there, you can subscribe to Dwell Fortress Roundtable or find us in the podcast service of your choice. Music for this episode is from Filmmusic.io. Skycullen and Folk Round are both by Kevin McLeod. You can find more music from Kevin McLeod at Incompetec.com. Please consider donating to the creators of Dwarfortress at Bay12 Games.com. If you'd like to help support Dwell Fortress Roundtable, you can find us on Patreon. on. Links to all of these are in the show notes.

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.