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

Dwarf Fortress

Is Dwarf Fortress what you want to, or plan to, be working on the rest of your life?

The older I get, the more it seems like I can talk about that without seeming flippant and stupid or whatever word you’d use for someone who’s, like, 18 years old talking about their 50s, right? Because now my 50s are only 13 years away. I’ve been working on Dwarf Fortress long enough that I think I am allowed to talk about my 50s now. I mean, they tell me my body is gonna fall apart when I’m in my early 40s and it’s gonna really suck and so forth, and hopefully I’ll still be able to keep going, but yeah, that’s the plan.

We’ve got enough interesting things to do that burnout has never been an issue. We always have about four things we’re working on with Dwarf Fortress, and if you ever feel like you’re hitting a wall on something you can just rotate into the next topic until you let the wheels spin in the back-burner and then come back and clean it up.

I haven’t done anything remotely like creation myth generation before. It’s exciting. It’s like starting a whole new game. And it really is a separate project. And then it just becomes one of the little cogs in the Dwarf Fortress machine. They're all separate games in a way, but then the interconnections start to grow and you have a common framework, but they’re all very different from each other.

When people threaten you with nuclear war when you’re growing up you sorta don’t care [about money] at all. Or at least that’s me.

Have there been other facets of the game that started off as an independent project that were then absorbed into Dwarf Fortress?

Yeah. All of Dwarf Fortress began that way, because Dwarf Fortress itself was a side project about a dwarven mining colony when I was still working on my first fantasy game. Or, well, my billionth fantasy game, but the first one that I put online that was our big project, right, and then Dwarf Fortress...

Was that Armok?

Armok, yeah, the 3D one, and that development’s so slow because we can’t do 3D graphics and even if we could it would still be slow because you have to draw and render and worry about how that’s gonna work, and so we started making this little dwarven mining colony game. It’s a fantasy game because it has dwarves and stuff, so any time we thought of something cool to put in there that was already in the 3D game but badly, it would just get sucked out. I’d always imagine this star circling a black hole that’s just sucking all of its light out of it, and then Dwarf Fortress has grown and reached this critical mass where it just absorbs everything I try to do.

It’s why the only other side projects I have now are strictly sci-fi or something, because I’m like, ‘I know Dwarf Fortress isn’t gonna get there for a while, and so I can maybe finish something before Dwarf Fortress swallows it whole.’

Slaves To Armok God of Blood

Slaves To Armok: God of Blood.

Before Dwarf Fortress goes to space?

Yeah. Because I don’t imagine that happening but you never know, right? It seems safe enough, you know?

Was adventure mode originally a separate thing, or was that always part of the plan?

It was always in the original plan. Armok, first of all, was a single-player, you were playing an adventure, one character, like a traditional RPG. The colony thing is the side note, even though it became the main part of the game, and we were writing this dwarf colony game. The idea from the first day on the dwarf colony game was that you’d make a dwarf colony, do some little industries and have dwarves writing little diaries or something, and then they die in some spectacular fashion, which still kind of happens, and then you’d bring an adventurer to find the ruins of this civilization, but it was, like, a high-score list thing. It was this little little game.

Your maximum high score would be how good your fortress was, and then what your adventurer managed to find fighting and exploring the ruins would be the actual high score you got, so you’d set a potential and then you realize it with your adventurer, and so the two games together produce a score.

You win!

Yeah, and we like that kind of thing. But you’d be able to click on the score record and see a picture of your fortress or something, right. A nice little touch or something. So the adventure mode was always a part of the game, but that was before anyone knew about it. In 2002 when we started that was the idea. It’s never been good. It still isn’t good now, but we’ve always had this adventure mode in the game.

When we released in 2006 no one actually knew about it, and we had been working on the game on and off for four years by then, and we released, and when you look at the main menu it’s like ‘fortress mode’, ‘adventure mode’, and no one knew that existed. That was kind of fun, just to spring that on people. It’s been there for ten years after that.

Why would you take time off when you can write Dwarf Fortress?

You still think it’s bad?

Yeah. Looking through the lens of someone who plays RPGs, it’s terrible, because you don’t feel like you’re inhabiting a person with an overarching life path or quest path. Not that you want to force a story down someone’s throat but just that you felt like you’ve changed the world.

Do you regret at all that you hadn’t gone to GDC before now?

It’s fun. It’s only a week. I have to get out of this whole workaholic thing, right, because I work 100 hours a week sometimes, a lot of times, most of the time. I don’t have, like, a life or whatever. And you know, you work about 14 hours, 15 hours a day is 100 hours. Seven days a week, right? Why would you take time off when you can write Dwarf Fortress? That’s not bad.

I made a pledge to myself coming down on the plane. I’m not gonna think about the problems that I’m working on. I’m not thinking about adventure site creation, which is what we’re doing now, or work orders. So I’m not-not working on it.

An example of the work in progress Myth Generator via Tarn Adams

An example of the work-in-progress Myth Generator, via Tarn Adams

So, you’ve been working full time—more than full time, as full time is eight hours a day I guess—you’ve been working double-full time for years on Dwarf Fortress, and you’re totally engaged the whole time? You’re never like, ‘Man, I need a week off?’

The 100-hour weeks are not all necessarily on Dwarf Fortress. It’s, like, 80:20 or something, and the 20 is side projects and stuff. Oftentimes the side projects that I spend time on, 3-4 hours in the evening. You sit in front of the TV and not watch it, with a laptop on your lap, writing a myths generator or something, right? That’s kind of how it goes.

That’s the evening hours, spent doing that. It’s work. I mean, it doesn’t feel like work. None of it really feels like work, unless I’m debugging or something, which is a lot of the time. But that’s where the hours come from. I mean, I’m not, bragging about the hours, because it’s all fun. It’s all fun, right?

That puts you in, I feel like, a fairly unique position. Even people who love what they do, myself included...I love writing but there’s definitely writing that feels like work and isn’t necessarily fun, and I think that’s probably true for many many people who work on games. They love what they do, but they’re not having fun the entire time.

You know, even the part that’s not supposed to be fun, like, fixing bugs, that gets to be fun. It’s like a detective thing, right? You’re presented with the problem and you have a limited amount of information, and you kind of get really good at coming at it from the side and logging the right sort of information that’s gonna pop out what’s going on. It also lets you re-familiarize yourself with parts of the codebase that you haven’t looked at for a while, right?

If some random bug happens and I have to go look at the military equipment code, which I haven’t worked on for six years or something, then I read through it. You always want to be reminded or cognizant of the whole structure of the game for Dwarf Fortress, because you’re constantly future-proofing new features for, like, ‘When I add boats that’s gonna have to tie into exploration and trade and this and that and this and that,’ and you want to respect all of that when you put the first one in.

So, this might be kind of a dumb question because I’m not a programmer and it’s very hard for me to conceptualize what you do. But when you put out a big new update for the game, you’ve written some new features, there's then a period of several weeks where you were cleaning up tons and tons of bugs. How do those bugs get created when you’re putting something new into the game? It seems like it’s then affecting many other pieces in different ways. How does that stuff lock in together and affect different parts?

There’s a lot of ways it can happen. It’s funny how I have popular bugs, right? You shouldn’t have popular bugs. But the most popular bug with the latest release, I added taverns to fortress mode, so the dwarves will go to a proper establishment, get mugs, and make orders, and they’ll drink in the mug. And, you know, things happen, mugs get spilled, there’s some alcohol on the ground.

Now, the cats would walk into the taverns, right, and because of the old blood footprint code from, like, eight years ago or something, they would get alcohol on their feet. It was originally so people could pad blood around, but now any liquid, right, so they get alcohol on their feet. And then I wanted to add cleaning stuff so when people were bathing, or I even made eyelids work for no reason, because I do random things sometimes. So cats will lick and clean themselves, and on a lark, when I made them clean themselves I’m like, ‘Well, it’s a cat. When you do lick cleaning, you actually ingest the thing that you’re cleaning off, right? They make hairballs, so they must swallow something, right?' And so the cats, when they cleaned the alcohol off their feet, they all got drunk. Because they were drinking.

But the numbers were off on that. I had never thought about, you know, activating inebriation syndromes back when I was adding the cleaning stuff. I was just like, ‘Well, they ingest it and they get a full dose,’ but a full dose is a whole mug of alcohol for a cat-sized creature, and it does all the blood alcohol size-based calculations, so the cats would get sick and vomit all over the tavern.

I don’t know if an octopus can get drunk or not.

The original bug report is, ‘There’s cat vomit all over my tavern, and there’s a few dead cats,’ or whatever, and they’re like, ‘Why? This is broken.’

People helped me with this. We were all looking and figuring out, ‘What the heck is going on here?’, and that was the chain of events. It’s like doing the detective work to figure out that entire chain of events is what happened. You can see how adding just a tavern that gave the opportunity for spilling alcohol, which was really uncommon before, now all the spilled alcohol starts to, form in one location where something could start to happen. You activate bugs and little parts of code from eight, six years ago where you just didn’t balance the numbers because it didn’t matter. You don’t want to spend time doing balancing that doesn’t matter, because then you lose a couple of days doing something for no reason.

So the cats’ inebriation system was just based on any organism would have the potential to get drunk.

Yeah, right now it’s any creature that has blood, and that includes, like, an octopus. I don’t know if an octopus can get drunk or not.

Now we have to find out.

Dwarf Fortress Bearvaults by creator Tharis

Dwarf Fortress Bearvaults by creator Tharis

Yeah. I really don’t know, but yeah, that’s exactly the kind of thing that’s gonna bite me later somehow, right. Not looking it up on the internet or testing it. We actually had someone, when we were putting in wood density—no one knew the density, or we couldn’t find it online anywhere, of saguaros cactus, the cactus you recognize from, like, a Western. These giant cactuses, they actually have big wooden ribs inside. They’re kind of like a vessel, like a boat, and so of course we have those in Dwarf Fortress now. So you get this wood from the saguaros, but no one knew how dense it was, and so we actually had a fan order some from, like, this saguaro wood vendor, and then he did liquid displacement or whatever and measured it and put all the data online, and then we just put it into the data file, and credited the person and stuff, and now there’s saguaro wood density.

That’s really cool.

Yeah. We have great fans.

It seems like things like that, and just the general degree to which Dwarf Fortress has interlocking systems, it seems like you’re kind of on a crusade to digitally represent the world to the largest extent you possibly can. Is that kind of the end goal?

Yeah, that’s...if I could push a button and make it happen I would do it, but since you have to prioritize it’s like we’re more on a crusade to put the narratively interesting parts of the world [in Dwarf Fortress]. We don’t care about atoms and stuff.

You say the ‘narratively interesting parts’, but you’ve got the density of a wood from a cactus. That's narratively interesting to you?

It’s not. There are judgement failures and lapses and larks and imperfect human things at work here, but yeah, ideally. I mean, that’s where there are such good stories for Dwarf Fortress that pass around online.

We have story analysis stuff we do to plan the game where we write a short story, just some typical fantasy story, and be like, ‘What makes this story interesting? Where are the inflection points that really turn it into a narrative that pops out of it?’ We want that to happen when people are playing the game. We want them to have something they can hold onto and then tell their friends, and so you find, say, five or ten features that you would need to make that come to life, and those are the ones you pick, not the saguaro wood.

We want them to have something they can hold onto and then tell their friends.

But, you know, if you’re gonna do wood density, which becomes important if you want wood to float, you have to put in a number, right? But then if you put in 200 types of wood you have to put in 200 numbers. Or you don’t have to. You could use three or something. Well, [more] than three.

As many as you can.

That’s why crowdsourcing is so cool, right? People look that stuff up, they put it in, they’re helping the game and it’s a division of labour. And they get something out of it, I get something out of it.

So what are the major outstanding parts of reality that need to make their way into Dwarf Fortress? Is this an infinite list you keep in your head, or a document?

We have a list of things that we’d like to put in to get to Version 1.0, whatever that means. Because we’re on Version 0.42 now, which is 42%. That’s of the stuff that we kind of wrote down in an outline.

So that number is based on something?

Yeah. It’s really specific, and we actually have it broken down into 2,600 little checkboxes, and we’ve done 42% of them. They don’t change that much anymore. There is kind of an in-out list now. You eventually decide, ‘Well, you know, not gonna be able to do time travel,’ or something. Even though there are time-travel fantasy stories. It’s just a hard problem. Even if we thought of some silly way to kind of do it, it’s gone. Dwarf Fortress 2.0 or whatever.

We always have five or ten things that are on the menu, and that’ll get us up to 0.5 or whatever. Another 8% of the things are on the menu now, and it’s more about choosing the order so that the game is still playable. You don’t want to add something that has too many prerequisites that haven’t been met.

If you want to just say, ‘I’m doing Dwarf Fortress political intrigue now,’ we don’t have notions of law, property, customs, status, economics of any kind, and don’t really understand personal interrelationships and territories and things well enough to do that any justice. So it gets kicked down the road. It’s part of the 100% to finish the game, or finish the 1.0 version of the game, but it’s definitely gonna be done as a later parts.

You eventually decide, ‘Well, you know, not gonna be able to do time travel,’ or something. It’s just a hard problem.

Do we do law, property, status, customs, economics, boats? Which of those comes first? Because they influence each other so much, law influences economics, economics influences law, ... once we get to the point where it doesn’t really matter which things we do, then we just do whatever we feel like, because we know we’ll work faster on something that we’re enthused about at the moment.

But then that puts us on that treadmill where, say we work on law and property for a while and then just kind of hit some snag or just kind of get tired of what we’re working on, then we shift over to a first economics release or switch to the creation myth, so we have this little roll that we’re on, and when those things get done enough then, you know, maybe politics gets fed in there, maybe crime and punishment stuff gets fed in there, and just keeps rolling. And we just try and pick things out of the 1.0 list rather than just coming up with stuff at random, so that we actually make progress on the version number. Sometimes we don’t because we pick a random thing and just do it because we felt like doing it.

But you’re still adding, you’re always doing something.

Oh yeah, yeah. We’re always working. People are very understanding and patient with us now, you know. It took time to build the credibility and to have people that were not actually interested in what we were doing, or at least how we were doing it. Now we’ve got a solid fan base that’s large enough to let us keep going, and they’re into how we do it. I mean, we started our Patreon in April and there was no release until December, and the numbers didn’t fluctuate. It was just solid. Everyone was on board.

Patreon in general goes with your pre-existing group of people more than: ‘You have a Patreon, now people will come.’ That’s not how it works, right? We had an existing following. They knew how it worked. We’ve had release droughts 25 months before, and it was amazing how few complaints. They knew we were working, we’d post development blogs, keep people up to date, and they know that we’re good for it.

On the next page: Tarn talks about Dwarf Fortress's interface, the amazing modding community, the upcoming myth generation system, and his favorite games.