Wednesday, January 03, 2007

The Dwarf Fortress Interview

Tarn and Zach Adams, creators of Dwarf Fortress, agreed to answer a few questions about the game and about themselves. This is part one of the interview--part two will come after you guys have had a few days to submit questions.

I've written about Dwarf Fortress extensively--the first post is here, and the September 2006 archive is full of detailed, lengthy posts about the game. Here's how I described Fortress mode:
In simple terms, when the game begins, you have a group of seven dwarves at the base of a mountain, and your goal is to survive. And to survive successfully, you'll have establish stable sources of food and create shelter. Each of your dwarves has abilities, and they can learn new ones, and you must use their skillsets to create a sustaining environment.

That doesn't sound so complicated, really, but there's an intellectual beauty to this game that is tremendously rewarding. Dwarf Fortress is the most consistently complex and internally consistent game I've ever played. It's incredibly challenging, but it's also fair--it rewards thinking, both logical and lateral, and it's a true pleasure to play.

How good is it? Well, I'm a graphics whore, generally, and this game's graphics are in ASCII, and it's my favorite PC game of 2006, over both Oblivion and Gal Civ II. And it's still in alpha--but that's misleading. What these guys are calling an alpha is far more stable and feature-rich than just about anything I played last year.

Here's a link to the game's website, and the wiki is here--it's over 200 pages and more inclusive than 99% of commercial game manuals these days.

One more note: Tarn's academic background is in math, while Zach's is in history. Tarn was named outstanding senior in Pure Math at the University of Washington in 2000, and received his Ph.D. from Stanford in 2005. Zach received a BA in History from the University of Washington in 1997.

My questions are in bold, and Tarn's responses (in consultation with Zach) are in plain text.

If you were going to describe Dwarf Fortress in a single paragraph, what would you say?
Dwarf Fortress simulates a fantasy world in which you can assume various roles as history marches along. At least, this is what it aspires to be. Right now, you can play a dwarven outpost with minimal interactions with the outside world, or you can play a single human, dwarf or elf in a fairly simplistic kill-quest game. Dwarf Fortress is an alpha because it isn't yet many of the things it will be.

You come from a strongly mathematical background, and mathematics is generally considered a kind of dispassionate pursuit, yet there is a strong emotional component to Dwarf Fortress--dwarves are seized by moods, they go mad, and they grieve. At a time when most games are almost totally lacking in any kind of real emotion, what influenced you to include these kinds of interactions so prominently in DF?
It has been a long time, so it's hard to trace back through all the causes. We've often included consequences and side effects of violent acts in our games, but for DF, it doesn't necessarily come from the same place as it did in games like WWI Medic and Liberal Crime Squad. For DF, it was more or less a natural progression from unit individualization and happiness values. If dwarves can become happy or sad based on their property, which was a game mechanic mostly important for nobles at first, then it becomes more necessary to include the emotional impact of everything else in the game just to be consistent. It would be jarring for a noble to have all of their friends and pets die and it still says they are happy about their splendid room... though I suppose this can still happen if the room is nice enough. From where it is now, it's also natural to further individualize the dwarves by giving them more variable personalities and more complex interpersonal relationships, since it would make the game more immersive.

At a basic level, we noticed early on (I think starting with an old space fighter game we made) that if you individualize the units (in that case the pilots and their ships), it's much more compelling. It's also easier to program a game if the player uses the same game mechanics as the other similar entities that are floating around (such as enemy and other creatures). This also lead to some early individualization of units, just based on the possibilities that were available to the player.

It also seems like DF goes against a general trend of games being dumbed-down to broaden their appeal. DF is a consistently complex game, far more complex than anything else I've played in years, but it's complex in meaningful ways. What process do you go through when you're deciding how deep a feature should be? Do you start with a broad feature and drill down into the particulars, or is there a set of guiding principles that you use for all features?
I haven't played enough games recently to know what the trends are. Well, I don't get any during the year, but Zach and I have recently had this tendency to run out and pick up several games just after Christmas. There were a lot of clones this time around. They didn't seem particularly dumbed-down -- a lot of them improved on the game they copied marginally... but none of them lasted that long either. Anyway, it's important for complexity to contribute to enjoyment on some level rather than to outdo another project or to cater to "realism". There are some basic tests for a DF feature -- can it be implemented from a technical perspective (mainly based on storage space and the load on the processor)? Would it make the game more fun on the whole when it goes in, or even if it makes the game a little less fun in the short term, does it have enough potential to merit inclusion?

This isn't saying much -- it's the analysis for a given feature that can get interesting. For a simulator like DF, a feature should go as deep as you can make it, given time and technical constraints, since that will make the world seem more coherent and alive, and then if you need to hide some of that from the player to avoid a pointless information overload, do that. However, if you want something to be simple to understand, you don't want extra complications. The flavor of DF is to default to "yes" when asking about a complication, whereas a game like Chess doesn't really need any frills like the pawns becoming frightened (though that would be kinda funny). Most importantly, play through it a bit, if your game compiles. Is it fun? Does it flow right? A lot of DF is designed on the fly and it's almost always in a state where it can be compiled and played, so it's easier to make sure things fit correctly. It's also easier to coordinate changes since I don't have to coordinate with anybody.

DF has a strongly mythic feel to it. Are you or Zach strongly influenced by any myths in particular, and was that a consideration when designing the game? Did it influence the design of the Legends feature?
We've always been interested in legends, myth and history. Zach has a history degree, although our initial interest came from the myth interpretations of Ray Harryhausen and other such things. Aside from some of the translated writings of Assyrian kings, we haven't used anything in particular for DF. Of course, Tolkien's influence is pervasive, though most of that ended up being through filters like DND, since we hadn't read the Silmarillion by the time we had our general fantasy game outline ready. We're certainly thinking about these now as we design the mostly unimplemented Legends feature, since ideally it should be able to produce a narrative given what has transpired in the game.

I think it's also important to mention our experience with high score lists at this point. The Legends feature is the high score list for the game, and it's ultimately going to be the way the history of the fantasy world being simulated is conveyed most directly to the player (though it might become diffused through books and other in-game texts). We've always liked persistent data like this -- we played Hack 1.03 for years when we were younger, and getting a new entry on the high score list was the primary goal, preferably with a new cause of death or at least with a killer that you remembered to name. We wanted more information to be saved though, and that's part of what DF is about.

So how old were you when you first saw a film with Harryhausen's stop-motion animation, and what was it? Do you remember anything about that moment in terms of your reaction?
My parents had a TV before I was born in 1978, and aside from Clash of the Titans (imdb has '81 for that), all of those movies were made before then. I don't remember anything at all about my first reaction or which movie it was, since my parents let us watch things like that even when we were toddlers. Jason and the Argonauts and Clash of the Titans are the ones I remember most fondly. The Sinbad ones were okay. Zach's older and he doesn't remember much either, but we always watched them when they came on. He got me a set of them on DVD for my birthday.

I have to ask about the translated writings of Assyrian kings. What led you in that direction, and what were the dominant themes that you took away from the material?
This came out of my brother's history studies (in general, ancient history had a great impact on the way Zach thinks about our games). The Assyrians had these giant pillars (steles?) that they inscribed with all of their accomplishments. This influenced us to make the creatures you meet in adventure mode give you little speeches about their prior bad acts, since the Assyrians often had things to say about their opponents. They also described the various things they did to their enemies after they were vanquished... it was all very creatively barbaric. We've got the goblins impaling old adventurers on spears, but adding more things like this should help to clarify more of what's evil about them. The last great Assyrian king Ashurbanipal even bragged about bringing wild animals in to a conquered Elamite city and making the whole area into a wildlife park -- the animals "were made to lie down as if at home." If we can get the AI to do things like that, it'll be great.

You mentioned that your father introduced you and Zach to computer programming by using the Ultima series. At what age did he introduce you to Ultima, and how did it shape your vision of what games should be? What was it like knowing so much about programming at such a young age?
He actually started us up on Critter and some other BASIC games we downloaded from BBSs using... QModem or something. I think I was five or six, and Zach (who is two and half years older than me) probably got started around that age as well. Both Zach and I learned a lot of our initial BASIC from reprogramming old games we got from a BBS like Temple of Loth, or games that we typed in (or forced our father to type in) from the backs of magazines. I think, from PC games, Starflight, Rogue/Hack and Seven Cities of Gold probably had the most influence on our early outlook (arcade and console games, books, movies and pen and paper games like Cyberpunk were equally influential), though the Ultima series also had a lot of that freedom, depth and range we want to capture eventually (well, the Ultima series up to 6 or 7, the first Ultima Underworld game was neat too).

As a kid, I didn't think about the fact that I could program, since it didn't come up as much as being good at math, and I didn't talk to kids at school about programming or even computer games (we did talk about console games). It did make me very comfortable with things like variables. I remember being pulled aside in sixth grade with some other kids for a little chat about algebra. It was about x, and it contained the phrase "you can think of a variable like a bucket." It was probably cool for the teacher to be focused on the bright kids he'd identified, exposing them for the first time to the fundamentals of more abstract mathematics, so I hope I didn't act like a smart ass.

What was the first inkling of an idea you guys had in regards to DF? Did anything in your previous games lead you toward the concept? How long was it kicking around in your head before you put it on paper, and has the game changed in significant ways from it's original conception?
DF is really two paths that ended up being joined. The first comes from our fantasy world sim idea, which has been around for a long time, starting with a BASIC game called Dragslay. I'm pretty sure I was still in California when I started that, which would make it 16 years ago, when I was twelve. You ran around and killed dragons and other creatures... it had hitpoints but you could chop heads off, and there was an IQ score that got reduced if you were hit in the head, I think. Dragslay was updated to a C game with the same name that I started in '93 and was working on all the way through 1998 or 1999. This game had roughly the same combat system as DF but without a spatial component, and it included world maps and persistent groups of monsters that went on raiding parties and rampaging dragons as well -- I think DF is now the better game, but it still has some distance to go before the DF adventure mode includes everything from Dragslay.

The next few iterations of the game were called Slaves to Armok: God of Blood. The last one of these is at http://www.bay12games.com/armok. I focused on the basics a bit too much on that one, and despite working on it for years it never really got off the ground. The 3D graphics also slowed development too much, so DF ended up assuming the role of our main fantasy game around 2004 or so. However, DF itself was started in October 2002 as more of a gimmick game. The original idea behind DF was just a limited version of the Legends mode, feeding off simplified dwarf and adventure modes. I had this game I wrote called Mutant Miner that didn't quite work out, in part because I wanted multiple miners, and it was turn-based, so it ended up feeling like one of those massive battles in those SSI games that take forever to advance a turn. So I was thinking of starting a mining game again with dwarves in real-time, but then I thought it would be really interesting to let an adventurer come back to your mining/crafting operation after it died, as a way of building your high score entry. You'd take craft items, diaries and production logs out of the tunnels to some generic town or just off the edge of the map, and this would extend the high score entry by adding more stats and other information. I called up Zach when I had the adventurer idea and we fleshed it out quite a bit over three days, but it was something like a two month project after that, and Armok was still our main game. As DF progressed it started to suck bits of Armok away like a black hole, and eventually we decided to push everything over to DF since it was moving so much more smoothly.

Does your mathematical background help you envision completed structures before you program them? What advantages does a mathematical background give you when it comes to programming complex behaviors?
My head has always worked fairly well with abstract bits and pieces moving around, and it helps to be able to keep most of the game up there (though I forget things now and then, and I don't remember many of the specific numbers). I don't always envision the structures completely before I program them though, depending on what you mean. I have a fairly good picture of everything that is implemented in DF, and I know about what I need to do to add any of the features up on the development pages, but it's also good to try to maintain reasonable programming practices so you don't have to retain as much when you are adding more material. Programming isn't really my cup of tea, but I've been knocked around enough now that I feel confident about keeping DF together as long as necessary. Still, being able to deal with math is certainly useful for writing games, especially when you are trying to deal with things spatially or you are trying to model some kind of real-world phenomenon.

Dwarf Fortress has been in development for four years. Do you have any kind of timeline for development, or will you continue to work on the game until the version 1 development list (version 1 development list) and the future developments list (future developments list) are completed?
I don't have any deadlines, and I don't know when I'll get to any specific feature. Development is constrained by things like the availability of rent money and all that, so I'm just trying to do as much as I can. It's hard to find enough time while I'm working. Hopefully things will be different when I leave my position at the end of May. I'd like to keep working on the game until I get everything that's currently on those lists done, and then no doubt there will already be more on the future list by then, in some other format. It's easy to sit back and think of ideas for the game, more than I could write with the time I've got left, since there's so much inspiration in everyday life and art and everything else that's out there, and not just for DF. It would be nice to get a chance to work on other projects again -- we have several ideas, some of which are planned out as much as DF, but it's difficult to do several projects at once and keep it all sorted properly, so DF is the main focus now.

Have you always collaborated with Zach on games, and what is it like to work so closely with your brother? Does Zach have a background in mathematics as well, or did he pursue a different course in his studies?
Our collaboration has been closer more recently, since he hasn't had time to program much himself for the past several years. We used to write programs separately and trade them off to play or torment our friends with them, but he didn't program for the most part once high school started and I took up most of the technical burdens. He didn't take to mathematics so much, though he can manage to program without it -- math at the calculus level and beyond would only be useful for specific applications in any case. Like I mentioned before, he actually ended up with a history degree. It's great to work with my brother on the games, since our perspectives are harmonious enough that we can run ideas by each other and get the benefits of having a dialogue without having any significant vision conflicts, and he's programmed enough that the ideas he has don't get beyond what's going to be possible to implement.

Site Meter