Dwarf Fortress' creator on how he's 42% towards simulating existence

Dwarf Fortress is obviously enormously complex and will only continue to grow more so as more elements are added. I can’t even imagine the concept of politics coming in. That’s an entirely new realm of life, society. So do you foresee a future where you work on, or have someone else work on, the interface side of the game and the way you interact with those things, and make it more approachable or totally overhaul it? Or is just kind of it is what it is and you’re cool with it?

You think about it when you’re starting out and find you’re not too good at that, right, and then it also slows down development of features and so forth. [I] don’t care about getting to some kind of sold endpoint where we release the game. We do improve things over time, and a modding community springs up, right? And we have these amazing, amazing modders, the people who made DFHack, the people who made Stonesense, SoundSense, Lazy Newb Pack, Armok Vision, Dwarf Therapist, and, you know, I could just keep on going with this list of amazing mods. That was just the interface mods. People who have made the game more playable.

I think more than half the people that play the game use a pack that includes tilesets and workflow management stuff that makes the game more responsive to your desires rather than fumbling around looking for what random key I picked for [whatever]. I do remedy certain deficits, and I’ve also gotten better about alphabetising lists, letting you type things in to find things in lists. All the new lists are pretty good. So I’m learning my own lessons and applying them, remembering to do them. But I don’t really see, at this point, a gear change into polish mode. I think we’re kind of okay. I’m okay with it, and, you know, there’s a lot of Dwarf Fortress-adjacent games now, and you can get a lot of the experience with a graphical game, and there’s more and more coming out.

Similar, but not quite on the same path towards totality.

I mean, it takes time, right, when you say, like, ‘I’m going to make a Dwarf Fortress-like game.’ They don’t mean they're gonna do the whole thing. They mean a colony management game that has some interesting additional components like named creatures, that you can follow their lives, something like that.

So, the myth generation system you gave the talk on, can you talk about some of the elements of it that you still have left to work on, what you’re doing now, what you’re excited about with it?

We’ve got this prototype myths generator that does more or less what we need. It creates the civilizations, it has some types of magic systems, and that’s really what we wanted to get out of it. Makes some kind of landforms. I didn’t quite get to that in the talk, but there are some interesting things there. It’s pretty much ready to hook into the game, but the thing is it’s a different program, so it needs to be integrated, and that’s a process that’s going to take...you know, whenever a number of months pops out of my mouth...

It’s the wrong number.

It’s the wrong number, so I’m not even gonna do it, but I don’t see a two-year release. I see a shorter release. And we’re thinking about ways to split it into pieces, and that’s become more important to us. There was only one really really bad 25-month release cycle, and the fans didn’t seem to mind at the time. I mean, they did but it wasn’t catastrophic or anything. But just for the stability of the game, letting a bug fester that no one knows about for that long, and letting it burrow in there, and you add more and more and more...

The Myth Generator, via Tarn Adams

You’ve got to fix it.

Sometimes you don’t even know it’s there, because the fans are the ones that find the bugs. I can’t spot most of them because I’m not gonna have cats walking through my bar or whatever. It just doesn’t happen, because I don’t get to play enough. So this bug will just be unknown, nested down there, and by the time someone finds it after the release, sometimes I can’t do anything about it because it’s so far down in, and then we just have to get used to it or work around it. Ideally a release cycle wouldn’t take longer than, like, nine months or something, and hopefully faster than that.

Is it also kind of just like a sense of satisfaction or relief to be able to just get something out there? I work on articles sometimes for a few weeks or maybe a few months, but I can’t imagine it being 25 months before putting this thing out there, and when you finish it you just have that ‘phew’ moment where it’s finally done.

The tension does build up a bit, especially when you know about the problems with bugs and so forth, that it is really a problem, that the longer you wait the worse it gets, not better. But at the same time, you don’t want to release every three weeks or something, because you can’t get into a problem in that period of time. You can’t really drill down into a complicated system and inhabit it, and find the connections with the old systems and put them in, and make sure that it’s playable, and then bring it back out. Sometimes that’s going to take two months, no matter what, just to get the core of it in.

There are so many interlocking systems now, and when you say, ‘interlocking system’, I mean, sometimes it’s these random events like the cat thing where it just happened to work that way, but more often the interlocking is you manually make the spokes and little gear teeth. That’s what you’re doing. You’re adding each little one that fits in with every gear you could think of. There’s more gears that would fit in too if you remembered they were there, and you just do as much as you can. Every system probably relates to every other system in some way. Those just haven’t all been realized yet. And if we were to just sit down and say 'what are the ways that combat relates to boats,' and then you start thinking of pirate movies and and all this interesting stuff, and then ship to ship, ship to land, people on a deck, sea monsters, everything. There’s all kind of different things.

That’s why you take a few days to think of what those things are and then tackle as many as you can. And then you remember, ‘Oh, there’s the whole trade thing, and I was gonna do something with weight and water displacement or something to make the galleons sink down deeper in the water when you fill the hold with ore,’ and you didn’t do that part. And then, you know, suddenly you can’t do it because it’s too late.

I’m trying to picture this as more than just text files and it being you surrounded by the Matrix and just trying to draw the connections.

That’s what it looks like when you get a tablet in my hand. I can’t even say the word ‘tablet’ anymore in the modern era because you would imagine me using my finger on an iPad. I just mean pen and paper. That’s how this works. You just sit there and draw, and draw lines and bubble graphs and Venn diagrams and other things, just trying to think of all the features and connections, and there’s just this stack of paper being recycled as you have bad ideas. Then you start to have the numbered pages you keep, one, two, three, and you have a stack of 20 pages, and then you put it into the computer into a text file, and then you’re like, ‘Okay, I’ve got 300 lines in this text file and I just need to gobble them up,’ and then that’s the release. That’s kind of what it looks like.

Dwarf Fortress Roarsilver, via Jeremy Nissen

That’s so beyond my comprehension, I think, because you have so many systems now that it’s almost mind-boggling to think that there’s stuff in there that could totally change the way the game works but it’s just you have to be able to remember it’s there and then remember how it works with everything else and pull it together.

That is, I think, in a real way a mind being boggled. My mind is always boggled. I think the thing that’s good now is I’ve kind of developed a skillset over the years of just keeping the project alive. You don’t have to find every connection but you just don’t break the game so bad that it falls apart. And that’s really all I need to do.

Are there many cases with the community where they’ll say, ‘Why didn’t this cat licking its paw make it drunk?’, or in a different situation point out where two things would seem to logically connect but don’t?

We’ve got a suggestion forum with 80,000 suggestions, many of them along those lines. There’s a really big thread, for instance, on farming, with mockups and everything.

The forum is way ahead of us, and it’s useful because when we actually go to do farming again, or go to do the boats or whatever we’re thinking about doing, there’s gonna be six or seven competing ideas for how that should look, and then we have our own idea of how it should look, and we kind of synthesize that into something. It’s what’s going to work with the code base and there’s a lot of technical considerations about what we can get away with given all the stuff that we already have, and our own feel of how the game should do narratives or how the game should play overall that’s gonna drive the considerations, more than just realism. That’s kind of that tablet process, where you start reading, writing things down, and then synthesize, synthesize, get it in the text file.

How much Dwarf Fortress do you play, actually play, not fixing bugs, not testing?

It’s funny, because this whole fantasy thing, all the other ones too, started as ‘I want to write the game that I want to play.' And that happened because the RPGs they were making, we thought they were kind of going one way, they went another way, and so we were like, ‘we need to make them now.' It didn’t turn out that way. I never get a chance to play anymore. You can kind of do the adventure thing, because it’s so short. But starting up a fortress, it takes a while to get it up. I more just look at the saves people send me. I’m like, ‘Oh wow, that’s a giant fortress.’ or ‘There’s some really interesting stuff going on here.' I’s not bad. My interests have changed a little bit too, so I actually enjoy working on the game more than I’d enjoy playing it anyway.

[It seems like] many developers don’t play games because they’re on a deadline of some kind. They’re on, ‘This project has to be done by this date. When that’s done, when we’re done crunching on this, I can play The Witcher 3 or something for a little while.’

Yeah, and I’m kind of in a state of, I wouldn’t call it ‘permanent crunch’, because crunch is kind of harder than what I do because there’s a social element to it. Obligation to the other team members that’s probably a lot more draining. I can kind of chill out for an hour at will any time I want, whereas if you’ve got three team members working at their computers and you’re like, ‘I want to go chill out for an hour,’ maybe that’s not what’s gonna happen, because you feel obligated. Or at least that’s how I think about it, which is why I would never work in a game company.

Hack 1.03, that’s the one we grew up on. That lineage was big, largely inspirational for Dwarf Fortress.

But anyway. This year I’ve played Darkest Dungeon, because that has a Dwarf Fortress vibe to it, right, the stress systems and the town part of it. So I thought that was interesting. I killed a few bosses, but I didn’t get very far. I’m not very good at anything. And then weirdly I went back and played Might and Magic from 1983 or 4 or something, because there’s a few games that still bothered me that I never got through as a kid, when I was, like, seven years old.

I was happy I went through it. I was like, ‘Well, I missed out this whole arc,’ so I just went and played Might and Magic VI. That was also an eye-opener, there’s a Daggerfall type feel to it with the flying and stuff. It is interesting how much it diverges from the original. You’re not just blobbing through dungeons and stuff, you actually have a lot of 3D control over things, and it’s pretty free. The original is kind of freeform too, but yeah, just even more so, there’s a lot of other systems on the side with skills and stuff that that the original didn’t have and that most games didn’t have at the time. It’s interesting to see that whole lineage in there, and that lineage was obviously cross-pollinating with the other stuff that I had played, and it kind of makes me feel a little bit better about mid-to-late-nineties RPGs.

Do you have any favorite games that you still go back and play?

It doesn’t quite work that way with me. Because, I mean, the games that were most formative for me are not necessarily fun to play anymore. Like, I’d say Starflight or something was a really important game for me in, like, 1986, and you just can’t go back and do that now, right? I was kind of a novelty junkie? That doesn’t really lend itself to going back to playing stuff? I don’t go back and play my old roguelikes anymore.

I’m just starting to learn NetHack myself. I find it really fun. It’s my first time playing a roguelike stripped down to the old-school ASCII systems, that’s it, and obviously NetHack is not stripped down compared to Rogue or something.

Hack 1.03, that’s the one we grew up on. That lineage was big, largely inspirational for Dwarf Fortress, especially the bones file part where you die and then you have in your subsequent playthrough, something about your previous character, more than a score or whatever, incorporated in the game. You can trace that directly to Dwarf Fortress persistent worlds. That’s where that comes from, this idea that you can kind of churn this system and build a history into it.

I’ve been playing on nethack.alt.org, so I have encountered other people’s bones files, and I think that the run I’m on right now I have my primary pet was somebody else’s pet that I found on his bones level and was already named and I was able to tame it. It’s a cool game.

Yeah, and you can see how Dwarf Fortress could spring forward in part from that kind of persistence. And the complications in the mechanics. It’s up there with games like Starflight in terms of things that put us on the path. I’d say Hack, Starflight, and the Ultima series, those three things almost exclusively are why we’re doing what we’re doing. If I have to pick game influences, I mean, that’s kind of a foible of devs, is there’s all kind of things that influenced us too that weren’t games. They’re all cheesy movies and stuff.

Have you gotten to try any of the VR stuff here at the show?

I’m afraid to do it. My motion sickness is terrible, so I’m afraid.

What would Dwarf Fortress be like in VR?

You know there’s the Armok Vision mod? They even have a Patreon and stuff now. It’s 3D.

I know Stonesense.

Yeah. So take the person that makes Stonesense and give them a little more time or a little more money, and they make a 3D version, right, and that’s what they’re working on. And it’s getting pretty good, and there’s a first-person version of it too. I could be a whole month behind the times now. Maybe there already is Dwarf Fortress VR. That could very well end up being the first VR game I play, Dwarf Fortress VR.

I’m gonna go look for it, but when that pops up please send it to me.

Armok Vision’s interesting. It’s a lot of work, because you have to model stuff. That’s the reason we don’t do it. But they’re doing the leaves on the trees, seasonal colors even, and all the workshops. It’s getting there. Because the Dwarf Fortress Hack people are so advanced now they’ve reverse engineered all the data structures and they can read the memory and do a whole other thing over on the side.

Was there ever a time when you were making the game that you thought about wanting to keep it for yourself versus having the code all out there for people to do whatever the hell they wanted with?

Oh, the code’s not out there. They just did it. They reverse engineered it, and I didn’t yell at them or anything, so it happened, but it’s closed source.

I guess I just assumed it was open because all those mods exist.

And kind of because of how the game is, right? Roguelikes are often open. But no, it’s closed. They’re just amazing people. They’ve been working on it almost as long as I have, just doing the memory addressing and stuff. It’s beyond me. It’s the same as the people that made Space Invaders in Dwarf Fortress. Did you see this?

Yes, I did see that.

Like, 4,000 little bridges or hatch covers for pixels. And they even made a title screen.

Stonesense mod image via Bay12Games forums.

People are still doing this kind of stuff with the game being closed, and making this amazing stuff. Why not put the code open source?

It’s basically a kind of paranoia or prudence about what might happen. Because there’s forking that would just be way easier just to have other projects going out there, people selling it and stuff. And people asking for, say they’ve fixed some of the bugs, and they’re like, ‘Here, could you incorporate this patch?’ I become a project manager, and it brings out some of the [reasons] why I’m not in an industry job, right? I have no experience working with other coders.

I don’t even use version control. If you don’t know what that is then you’re not gonna yell at me. If you even know what version control is you’re gonna be like, ‘You don’t use version control? You don’t use source control? What is wrong with you? How can you even work?’

I’m just not cut out for it, in a sense. It’s been 15 years, so the reasons have change over time, but that’s my current understanding of it. I kind of have an academic background, so I am kind of like, ‘Put it out there.’ That’s my default mindset, but it just seems risky to me.

It has been working pretty well so far.

Yeah. If it isn't broke, don't fix it.

Anything you want to talk about, plans for the next year of Dwarf Fortress, that isn’t out there already that you’re not worried would get people screaming at you?

It’s all public, so there’s not too much to say. I’ve kind of been talking about boats and laws and all that kind of thing, that’s kind of after the myths stuff. That's where we’re thinking about going. But that myth generator. I mean, maybe that’s the next year. I hope not, but maybe it is. That could take a long time. So as far as scoops on Dwarf Fortress news, I’m an open book, so I don’t really know.

No worries. I think that’s a good place to wrap up. I got you to talk for an hour straight, so that was an absolute pleasure for me.