Dwarf Fortress and the Terrible, Horrible, No Good, Very Bad Interface
rockpapershotgun.com
rockpapershotgun.com
It's interesting that by completely ignoring UI/UX the developers (2 brothers) have managed to create one of the most in depth worlds imaginable. This makes it completely unaccessible to the wider world, but beloved by the core audience and respected by any nerd that tried to read through a tutorial. It's found success in being the antithesis of a AAA game, which is usually beautiful but shallow.
I wonder if there could ever be another Dwarf fortress? Or if the target audience is too small to support another game.
Nethack was my first roguelike, 20+ years ago. A year or two ago I played Brogue, and realized just how crufty Nethack is.
Let me see if I can remember all the item-specific commands, just from muscle memory. 'w' is for wielding weapons, to unwield you 'w' '-'. For armor, 'W' puts it on, 'T' takes it off. For rings/amulets, 'P' puts it on, 'R' takes it off. For missile weapons, 't' is for throw, 'f' is for fire (be sure you select something to be in your quiver with 'Q' first!). potions are quaffed with 'q', scrolls and spellbooks are read with 'r', wands are zapped with 'z', spells are cast with 'Z', food is eaten with 'e', tools (like candles etc) are applied with 'a'.
In Brogue, every kind of equipment is equipped with 'e' and removed with 'r'. Every item that has an effect is invoked with 'a'. There are no spells; instead of memorizing spells you find staves that you then 'a', and they occupy space in your inventory just like a weapon.
If you like roguelikes and haven't played Brogue, give it a shot.
Also, take a read through nethack's source and Brogue's source, and you'll see that the cleanliness of Brogue's design is reflected in its code.
Brogue may be a lot simpler (I love both games) but NetHack lets you do tons of non standard things such as wearing a towel vs wiping your face with it vs wielding it as a weapon. You can wield rings as weapons, throw pieces of armor, dip objects into potions, engrave with wands, wield, throw, or eat cream pies... There's even a TV tropes page about it [0]!
[0] http://tvtropes.org/pmwiki/pmwiki.php/Main/DevelopersForesig...
Warning: Do not purchase Factorio if you have other plans.
But I haven't played FIO, so maybe I'm nuts.
Anyways, if you like either game, try literally every game Zachtronics has ever made.
I don't think minecraft's engine could even handle the number of concurrent actors that factorio does. When I used to play minecraft, you couldn't make complicated redstone devices on big multiplayer servers because the engine couldn't afford to simulate chunks that weren't occupied by players. Factorio simulates the entire map, all the time. It's heavily optimized for thousands of concurrent actors.
Mind, you still can't simulate the entire map, and it's generally rough around the edges, but it mostly works.
So there's a major benefit for server owners...
or does it grow or something?
It's like Redstone, but it really isn't, it's so much more.
Seriously, buy Factorio, statistically speaking I can safely say if you are reading this post you will not regret that purchase.
We've got lua-scriptable actors, we've got elaborate Redstone circuitry, we're got about six different item transit systems, and several power systems to choose from (I believe RF is the most common one now). We've got machines for automating just about everything, and IIRC, we can finally build moving structures again.
We've got at least two magic systems, if not more, endgames of your choice, and many dimensions to pick from.
And all of it plugs together, and you can pick and choose exactly what you want and customize it to your specification.
I will say that Factorio is far more moddable than Minecraft as well, and actually has a built-in mod browser. Mods are first class citizens and the community has done great stuff with it just like it has in Minecraft.
- Buildcraft. It's often considered old and dated, because it gives only a few simpler building blocks which need to be combined to make anything useful, but I consider that it's strength. It basically provides a piping system, for taking items, liquids out of and into inventory and machines, a power system that runs along similar pipes, and machines that will mine or pump for you when provided with that power. Its final stage power production consists of pumping oil, refining it and burning it, though it's underpowered compared to pretty much every other power source as it was one of the first and didn't participate in the mod arms race as much. I like the visual nature of its piping system (you see individual items travelling along the pipes) compared to many of the modern more efficient alternatives.
- Mekanism. Been a while since I played, but there a couple of mods that give you your basic set of processing machines that run on electricity. Mekanism has a decent progression system and gives you some room to make processing chains. (Competitors to Mekanism are Thermal Expansion, EnderIO, Immersive Engineering and IndustrialCraft2. Of these, Thermal Expansion and IC2 were in flux last I played Minecraft, often only having nightlies available, EnderIO falls into the "too powerful" issue at times, and IE is the new kid on the block which I haven't tried yet)
- Railcraft. If you get super into Railcraft it's fun building automated rail networks and trying to run as much off rails as possible. Has a very pleasing scope to it, as you can see machines in action.
- Minefactory Reloaded. It suffers from the "magic block" syndrome a bit, but it enables you to automate things that most mods didn't touch, like mob breeding and farming.
Other options:
* Forestry. It has tools for automated farming, though they are a bit "magic multi-block". Also bee-breeding which is a massive rabbit hole of its own and can basically produce anything if you get addons like extra bees or magic bees.
* Thaumcraft. This mod kind of resists automation of its own progression a bit (though it provides plenty of tools to automate other mods), but it gets in there because it's so different to most other mods out there. Magic and automation via little golem minions that run around, lots of cool items and tools.
* Frames. I think the current mod supporting them is Remain in Motion? Basically allows you to move a lot more stuff around in the world. Vanilla has a super lite equivalent in slime blocks these days, but frames go so much further.
* Project Red. If you ask anyone who's been around for a while, there's a mod called Redpower 2 which was available for 1.2.5 and 1.4.7 that was super popular. Project Red is basically an open source clone of this mod. While last I checked ProjectRed doesn't include its Blutricity or Forth based computer, it does include Red Alloy Wire, which is redstone on steroids that you can run up walls or have lines running in parallel that don't connect etc.
* Computercraft. Build computers that can run lua programs. I often use it for powering displays that show me the status of various aspects of my base. Also little automated turtles that can move about and mine or place blocks from their inventory or other things. Definitely OP but it's fun so I let it pass :p I built a super simplistic vi clone and a package manager for it back in 1.4.
It's more engineeringy than artsy. In minecraft my goal is to explore or make things that look cool. In factorio my goal is to make the mostest efficientest factory.
I think the best part of Factorio is that usually you'll set yourself a goal. Say, getting production of something like modules set up. You'll start building the section of the factory. Partway through you'll realize you need to up production of some material it depends on. So you'll go figure out why that line isn't efficient -- sometimes it's just due to how you've structured it, but other times it's due to lack of resources. You go to connect more resources to your network; maybe by finding an ore deposit and running a train to it. Wait, no, now you have a lot of trains in the system and not enough stops for them to drop stuff off without causing jams. You redo critical areas of your train network. By which point you discover that you're being attacked on yet another front by the aliens and you go to set up defenses.
Much like Civ, there's usually so much going on in Factorio that you'll always be in a "okay, let me just finish this and I'll stop" situation which never finishes. Of course, that's horrible if you have other things that you should be doing, but it makes for a really enjoyable game.
its rather amazing, you can even eventually end up building star trek level tech where you order items out of a computer that are stored digitally.
if you haven't tried it, check out one of the modpacks like Feed The Beast, or similar, set up a server play with a few friends.
best gaming experience I've ever had.
I programmed an in game robot with LUA to build hedge mazes, and 3d mazes
http://i.imgur.com/M6QcpKU.png
http://i.imgur.com/9VSlLxc.png
a messy factory: http://i.imgur.com/VUi07P7.png
Go check out the Feed The Beast modpack or something of that sort for a taste of it.
Now imagine they removed the forced manual crafts like plates etc. were for a while.
Now they put in a smooth curve for the automation so you get your first automated thing pretty early and the answer is never "go grind manual mining for 2 hours" or "quarry half the world and come back in 2 hours when it finishes", but instead is "build more automated lines" or "find the weak link in your current chain and optimise/expand it more".
Modded minecraft certainly feels like an inspiration, but this takes that plumbing/building/optimisation aspect of it and boils the game down to most of that. And since there's a single designer and no mod arms race, everything feels like it fits together, and has a balanced progression.
I like it more, especially since so much of modern modded minecraft consists of building a single pipe and attaching appropriate outlets to it (AE2 being one of the worst offenders).
Also another suggestion for people who like the automation/optimisation aspects of games, OpenTTD is pretty good for scratching that itch once your networks get bigger.
>so much of modern modded minecraft consists of building a single pipe and attaching appropriate outlets to it (AE2 being one of the worst offenders).
That is one of the things I really hate about AE. It just sucks all the fun out of things, as does any other mod that makes things too easy (cough cough EE2 cough cough). I miss being able to leak items, screwing up your machines because you needed a stepup/stepdown on your power supply, and blowing your reactor core. AE is like liquid anti-fun. And I really miss RP2...
(just more complexity every step of the way... 12 different resource types - you want circuit boards? Well instead of being copper wire + iron plate, you're going to need to make resistors and solder first...)
Absolute timesink, blink and 8 hours have gone past.
But I will argue that DF has a cousin in a game that is comically far outside of its arena: Quake, and the Quake family tree in general.
Both have a devoted audience that sticks with the games despite their extreme age and poor graphics. But more importantly - by accident more than by design - Quake has a ridiculous depth (both in mechanics and strategy) at the cost of exteme mechanical complexity (Just look at what you have to do to get the RA on Aerowalk).
If you're looking for Dwarf Fortress lite, I'd suggest taking a look at games by Paradox Interactive, which have a similar reputation.
Given, KSP doesn't strictly compete with DF...
The mechanical depth you're talking about is a lot less like the depth people talk about when talking about Dwarf Fortress simulation complexity, and closer to emergent complexity of found in any good multiplayer video game. If you're talking about the Quake family tree, some of the most played current day first person shooters (CS:GO, COD, TF2) are direct ancestors of Quake, sharing some of Quake's source code.
I have a ton of respect for Quake, its movement mechanics and its influence, but I don't really get the comparison.
I would argue that Quake has a lot more emergent complexity in its mechanics than a lot of other FPSes. Deathmatch has elements of territory control - moreso than in the Halo/COD lineage, as I understand it. And because you have to control territory and stay alive, there's an incentive to go fast. Very fast.
As a result, the more advanced mechanics of Quake (once bugs, now hallmarks of the series) have a very steep learning curve that hides an ocean of depth.
And yes, it is closer to the emergent complexity of an online shooter than the simulation complexity of DF, but the theme of depth hidden behind extreme complexity is the same.
>If you're talking about the Quake family tree, some of the most played current day first person shooters (CS:GO, COD, TF2) are direct ancestors of Quake, sharing some of Quake's source code.
I was actually talking about Quake's lineage in gameplay: Q3A, UT, and the rest of the arena shooter subgenre.
Given, this is an odd comparison, and I don't blame you for disagreeing. I'm not 100% sure I agree with me, and I am me.
Edit: Klei Software -> Klei Entertainment
Loved MotN, though, so I might give it a go.
I still haven't beaten the first level of that... :-(
...I need to start keeping tabs on those guys, like I do with Yacht Club, Supergiant, and Zachtronics.
It's certainly an extremely daunting game, and the interface is ridiculous and makes no sense. Like anything worth doing, it takes practice.
If you're too intimidated by Dwarf Fortress, try RimWorld [2]. It's the same idea, but with a GUI. And if you really want to learn to play Dwarf Fortress, the Lazy Newbs pack linked to below is a great way to start. I'd recommend turning off invasions and aquifers in the opening menu. Other than that, there are plenty of how-to videos and wikis out there. I won't favor one with a link. Google can help with that.
There will never be another game quite like Dwarf Fortress. But there will be a lot of games that learn from it and expand on its ideals. Tarn and Zack are incredible people, and if you send them a donation, they will mail you a hand-drawn image of a dwarf doing whatever you ask.[3]
[1] http://lazynewbpack.com/ [2] https://rimworldgame.com/ [3] http://www.bay12games.com/support.html
But losing is fun!
It's something that I'd love to use in my own work.
If you enjoy somewhat non-intuitive UI in a minecraft UI setting, try recent versions of the blood magic mod for minecraft. Its essentially unplayable without a web browser and google on a second monitor, but is a cool design and worth the effort. Also like DF its a bit grindy. And it grows on people such that people tend to really like it, warts and all.
That's not true: most menus are displayed prominently next to their keyboard shortcut, as you can see from the screenshots in that very article. You can also simply use the arrows to pick the menu you want.
There's very little memorization required, the effort is learning how the interactions work and how they affect the game.
yes! you have crystallized my reasons for playing df into a simple phrase.
DF is 100% depth, and 0% fluff. all of the pieces matter, and there's about a bajillion of them, if you care to look.
To me, the roguelike and DF style UI/UX are kind of like vim/emacs and "easier" or "prettier" game UI/UX are like MS Word. Both server their purposes well, but one is designed to be extremely powerful but it has a steep learning curve, while the other is designed to be easier for new users but the power usage can be more obscured or entirely non-existent. It's not a perfect analogy, of course, but it's my take on it.
I'm curious whether you actually read the article and have any thoughts on the menu within. Seemed horrible to me as an outside observer.
Dwarf Fortress is like owning an incredibly ugly dog. Everyone knows it's ugly. You can even laugh at how ridiculous it is. But you can still love it all the same.
ASCII art isn't a problem. I've played a lot of Angband and haven't really ever been bothered by the graphics. Yet Angband frustrates me far less than DF does.
The problem is an illogical and inconsistent interface. Discoverability is next to nil, and the stockpile example in the article is a wonderful example of inconsistency. This seems to be the result of iterative development that adds features while seldom overhauling the UI. I don't know much about DF version history in any kind of detail, but I'd bet that the stockpile UI made some sense when it was initially implemented, and likely much simpler. Maybe it was just toggling back then.
I would hate to see DF get a mouse-based interface, but there are huge gains that could be made with the UI.
Funny i should come across this claim, as reading the ebook collection of the filfre.net blog i came across a similar notion from Richard Garriott of all people.
http://www.filfre.net/2015/07/the-14-deadly-sins-of-graphic-...
"Each time you get one of those major technology influxes, the quality of the graphics goes way up but the gameplay goes back to the simplest again because the bells and whistles have become so much cooler that you don’t need any depth. However, to compete with that [technologically pioneering title] you have to add depth, and to compete with that you have to add more depth, etc., until the next big technological advancement, when everything resets again back to that lowest common denominator of gameplay."
And i think we can see this also in how over the years the sound and graphics staff of a games company has ballooned, while the number of programmers have remained largely the same.
Cats were walking through spilled beer, licking it off their fur (as cats do), and dying of alcohol poisoning.
this resulted in death because dwarves, as a rule, dont know how to swim unless trained.
For instance, (shamelessly plugging), the game has minecarts, which transport goods point-to-point, following some track.
To avoid having to lay track for each route separately, I devised a system of logic components that will allow routes to share track, via automated routing:
http://dwarffortresswiki.org/index.php/User:Gnidan#Minecart_...
The routing system uses synchronization primitives to ensure that each shared track segment is only occupied by at most one minecart at a time. Using this guarantee, I have my system switch track exits accordingly, so each minecart in transit gets sent to the right place.
GIF for anyone who might be interested: https://i.imgur.com/nC3dfLK.gif
And the save file: http://dffd.bay12games.com/file.php?id=11721
Perhaps i just let my imagination run a little wild while i wait for those little 'g' s to come and try to kill my guys.
The UI is terrible. The UI is part of the charm. You get the experience Tarn wants, not the experience you want. Art is not required to be accessible. (it often is, and that's often good) but some experiences can't be handed to you in a gift wrapped package. There is no royal road.
It has a similar playstyle, but with graphics and a UI that isn't too bad. Not the best UI, but not bad at all.
The first time I played it, I ended up with a Donner party-esque situation in which my medicine had run out, everyone was dying from infected wounds inflicted by raider attacks, and the few colonists still on their feet were fully occupied feeding the spoiled remains of the dead to the barely-living. Colonists were dying faster than the survivors could dig graves for them. It was brutal.
However at worst it's as this article outlines: obtuse, inscrutable, and lacking in consistency. Stockpiles are bad, but probably not even the worst interface. There are many aspects to job orders and militia management I still don't fully understand how to manage today.
I used to play pretty regularly for a long while, and I still kept a notes.txt file with all of the various key combinations required to do the most basic of tasks.
If your profession is UX/UI design, you are probably going to take weeks off your life with the raised blood pressure this game will cause you.
b (build) > b (bed) -
b (build) > w (workshops) > a specific workshop -
I wouldn't say entirely unrelated or unintuitive. However, other examples, such as organizing a military, are particularly egregious and I would agree, although I do love the game.
I've found that Kerbal Space Program seems to occupy that same gaming niche for me, of a game that's more of a simulator without defined goals, that rewards both planning and the realization that all of your finely laid plans can go to hell in one second - sometimes because of a wrong microdecision you made, and sometimes because that's just how that universe operates.
But with much better controls, and you can fly cool jet planes if you want to.
Complexity is not any more of an excuse than the inconsistent order of arguments or use of underscores in PHP is defensible.
Reminds me of an argument I once had with my brother-in-law, a psychologist, over academic writing. He argued that the obtuse, frequently unreadable style was simply "how they're done." Good writing is simple and logical — every academic would benefit from a semester of journalism, where deliberately bad writing isn't tolerated.
But there are plugins that make doing certain tasks much, much easier. So a reasonable interface can be made.
DF's interface doesn't struggle, it lays down and moans.
It's completely possible, it just takes some effort.
* Ignite poison against poisonous monsters
* Twisted Resurrection, Simulacrum on chunks, Sublimation of blood on chunks/blood
* Fulsome Distillation + Evaporate
* Old Nemelex deck-granting system (sacrifice different stuff for specific decks)
* Mountain Dwarves
* The beehive
Clearing it as a non-poison-resistant wizard with mephitic cloud (confuse, run away, pick off) was a lot of fun too. A small grind, but a fun interlude.
DF is many, many orders of magnitude more complex than Crawl. Many.
That said, there are definitely areas that could still be improved and I do use DT to manage skills, too.
For example in roguelikes such as Nethack, there's no hint on the screen at all and you will have to go to a specific long help page to read about it. The result is: you will have to first memorize a lot of commands to be able to play the game.
If I'm programming using vim, I certainly agree that memorizing all those commands will boost my productivity and I'm willing to do so. But for fun time, I'm not sure if I want to memorize those many commands first to have some leisure time.
Remember that nothing in this story is embellished. It all happened within the simulation. Dwarf Fortress is at the very least the best story generator game of all time.
I needed to tap a source of water to create a nice waterfall in my dining room. Everything was prepared: the waterfall would fall through the dining room, and then a channel under the dining room led off the side of the map through a fortification. All I needed to do was open the wall of the tunnel which was touching my water source.
Feeling too lazy to channel in from above (and slightly evil), I decided to go ahead and sacrifice a dwarf for the effort. I had the dwarf wall itself in and then open the wall. Two seconds later multiple bad things were revealed about this decision:
- The dwarf was actually a mother carrying her child under her arm
- The water was under high pressure.
- I had forgotten to make a floodgate to stop the water if needed.
The water shot out of the wall, instantly killing the baby and smashing the mom against the wall of the tunnel. She was dragged along by the water, fell down the waterfall and was pushed up against the fortification on the edge of the level with two broken legs and a bruised spleen. The baby's corpse was caught under the waterfall right underneath the dining room and wasn't going anywhere. The mother kept trying to run upstream but was unable to.
I felt pretty bad at this point. But thinking there was not much I would be able to do since the mother would certainly die soon anyways, I just tried to quiet my bad conscience and focus on other things, awaiting the inevitable message the mother had died.
A day later the baby's corpse started to fill my dining room up with miasma, making me have to wall out the waterfall to keep my dwarves from vomiting. Quite poetic justice, really: the stench of death was on my waterfall.
I was still waiting for the message that the mom had died.
It didn't come.
After a week of game time or so I looked to see what she was doing and my jaw hit the floor. She was FISHING. The mom was fishing to stay alive while drinking the water. She was in an obviously really bad mood having witnessed death and the decomposition of her child. But she was barely staying sane because she was being "comforted by a lovely waterfall".
That did it for me. I finally decided to launch a rescue mission to save her. Not 2 seconds after I had given the command to dig a tunnel to where she was, she went insane and died of thirst shortly after. I was too late. sniff
Her name was Môsom.
Dwarf Fortress is kind of this interesting standard of complexity over interface design. prioritizing depth over a pretty UI seems to really do wonders in development..
Having said that, I love that something like DF exists, even if I can never enjoy it. I think the world is better off for it, in some small way.
Note that not all of DF is as obscure as the example in the article. I've never tried doing what the author tried and I salute the author for bravery in trying it. Most activities in DF are fairly straightforward.
This article did remind me that I haven't sent the brothers some $$ in awhile, if you send them $$ they send you hand drawn art vaguely inspired by DF.
It is still worth playing for the weird level of detail and depth but I have a hard time having as much fun as I once had.
I recommend rimworld if you just want to have fun, though it doesn't quite have the level of emergent shenanigans happening in it yet.
I used to read the blog posts regularly, but I don't really care about the art-and-history simulator, or the single-player mode, so I stopped keeping up with it.
That having been said, the game is amazing, and has a valuable lesson involved: "loosing is fun".
Speaking as a linux user with a good bit of experience with sed, awk, and regex, DF is way worse.
Every year I pick it up and play it for a bit just show myself that I can do it.
These days, I watch streams of people playing the game on Youtube or I play Rimworld if I'm in the mood for actually playing something myself.
I've never been able to have the patience to get to one of the really interesting kinds of fortresses that have steam-powered defenses that tunnel hordes of enemies strategically through your base only have them burned to death.
Also, the game is single threaded so there's a very linear limit of how many dwarves and interesting emergent things can happen in your fortress.
God, I miss playing that game. When it's good, it's the best there.
I've wanted to learn Rust for the express purpose of making a faster, multi-threaded DF-like game.
You know, I wonder if we could use dfhack and LD_PRELOAD to force df to do some multithreading.