For more than a decade, Dwarf Fortress's interface has been unfinished. Obtuse layers of keyboard commands ask you to press seemingly random letters to open different menus. It's the biggest barrier to playing Dwarf Fortress, and a problem its creators, Tarn and Zach Adams, have known about the entire time. It's just one they've never gotten around to fixing, because there were always new features to work on, and the game was perpetually unfinished anyway; why work on usability when those menus would surely be changing in the future, right?
Now that Dwarf Fortress is coming to Steam, Tarn Adams says it's time to focus on those kinds of features. The most obvious talking point for the Steam version of Dwarf Fortress is that it will have graphics, but after talking to Tarn, I think his ideas for reworking the interface, integrating Steam Achievements, and likely building in tutorials will make the game way easier to learn for new players.
Here's what he had to say.
PC Gamer: The Steam version is still a bit away, but I think the area where you have a ton of potential other than the graphics is the UI. I think you've said yourself that the commands were never really something you thought deeply about. Is that something that you're taking on yourself to change, or is it something you're going to have Kitfox work on? What's the plan for that?
Tarn Adams: I'm sure they'll have some input, but the thing is, we've had like 10 years of community input or more on this, and we have it all written down, we just haven't been acting on it very responsibly. [laughs] And that's one of the things that's good for my brother to be in charge of while I finish the [upcoming villains update]. He's embarking on a much more serious project now, to collate, collect, and think about the different user interface decisions we'll be making.
Should we do tips and tutorials and that kind of thing? Seems like a solid thing. It's difficult to make a good tutorial, but making a tutorial in Dwarf Fortress, just having things that pop up, conditions that can be met, that's the kind of thing that I can code up very quickly, and could be written for something like mining without taking months.
At the same time, considering the issues on what can go wrong in a tutorial, if you're just doing the mining tutorial but you're doing it in a live fortress environment ... you have a dwarf, and you want him to have a pick and go dig. They'll do it, but how many ways can a dwarf lose a pick, right? If both their arms broke in an accident, like a tree fell on them because you'd just had a carpenter go out and chop down a tree, and then the tutorial is trying to tell you 'why don't you dig?'
We've got to detect what's going on, and there's a lot of ways a tutorial can go wrong. I think we're in a position that's a little more complicated than the average game in terms of even basic tutorials working. At the same time it's kind of a fun challenge to make a mining health detector. Then you start thinking, that's something that should be in the regular game, anyway: 'Why isn't this job being done?' Now we add in a 'why isn't this job being done' functionality, and that ties into how tutorials can be repaired.
Then the tutorial repair code can be like 'You know, we're giving you a one-time limb repair, your dwarf happens to have no arms for whatever reason, we're not going to judge you, we'll give you those arms back, let's finish the tutorial together.'
It'd be something that once we think about and plan it through, we can get quite a bit on the basic parts of the game. Like, the beekeeping tutorial is probably a little out of scope. But that's where Steam Achievements come in.
The whole 'cheevo thing, if there's a Steam Achievement for like, splitting a bee colony and making your first split so you can have two colonies, we give it a funny name, that also lets people know that beekeeping is something you can do in the game. People that want to 100% the game or look at the Achievements suddenly realize there's soapmaking, beekeeping, pottery, glassmaking. Animal training. We can let people know that these things exist.
Just talking to indie devs, that's one of the philosophies of Achievements. What are you going to do with them? 'Should you have them' is the first question. If you have them, which is where we're leaning, then you have to decide what to do with them. It's kinda pointless to have 'kill 100 of this,' 'kill 200 of this.' That's kind of a disappointing, annoying Achievement.
You've referenced mouse support for the game. There's basically no mouse support currently, right?
It's just so weird, like everything else. You can draw designations to dig with your mouse, but it doesn't tell you that anywhere, and you'd just have to try it, like an article of faith. 'Does the mouse work here?' The mouse works on like 20% of the screens, all the buttons are clickable—I think for instance on the military screen, you can click anywhere.
So the mouse support, the ability to do it is already in the game, it keeps track of where your mouse is. It's just one of those things where before it was harder to justify the time to say 'I'm going to take 3 weeks to make these things better.' Plus I was like, 'these screens are going to change a lot.' It's just not time to think that way anymore.
If we say 'these next two or three months we're just doing usability while the other people are working on graphics', everyone's on board—that's the impression I got from the response to the announcement, and that feels great.
There are going to be some learning curve issues (with me), but I can throw myself into it. I'm not a slouch, I can learn stuff fast. I hope to do an excellent job. It is a huge game, and there are a lot of ways things could go a little weird with it, but it's 100 percent guaranteed going to be better than it is now. You're not going to be going into the embark screen and assigning two different rectangles with the UJK keys. Maybe you'll just take the mouse and be like 'zip-zip. Now you embark.'
It's kind of crazy to think of Dwarf Fortress playing almost more like a real-time strategy game.
I'm all for right-click context menus. I don't know if I can do a radial menu. We could throw in a radial menu for y'all, if you want a radial menu. But yeah, for simple tasks, like you want a bed: Just right-click your carpenter workshop, click a bed, and there's your bed. Instead of [how it is now] going 'Q, move cursor over to carpenter's workshop, press B, ++, Enter.' 27 keypresses later you maybe have a bed.