
Dwarf Fortress Development - dopu
http://www.bay12games.com/dwarves/dev.html
======
aeontech
I know they don't want to open source it, but I wonder if they would be
amenable to having a volunteer who would help organize and push the code into
a version control system hosted on their private server.

In an interview I read, Tarn said something to the effect of that "he was not
interested in learning about version control and it would just be a
distraction that would take away time from the important work, since the way
he works has worked for him for many years".

I can't help but think that first, it's a bit dangerous way to work, all
"past, current and future" state of the project is only in his head and if he
happens to become indisposed, the project is very very likely to die (though I
suppose there would be hardcore fans willing to reverse engineer it)...

Second, it's a loss of historical record... imagine in fifty years historians
wanting to analyze the project's history, it would be so much more useful to
have a granular history instead of just a blob of files scattered across
thousands of directories...

Just look at Unix History repository here for example:
[https://github.com/dspinellis/unix-history-
repo](https://github.com/dspinellis/unix-history-repo) \- I think there's
immense long term value in preserving this kind of archival history.

~~~
TillE
Dwarf Fortress desperately needs multithreading and optimization for data
locality. Without that it is permanently limited in scope.

But it will never ever happen. Forget it. Anyone dreaming about open source DF
should go make their own game. And I mean that sincerely: Dwarf Fortress is
very good, but there are even greater things that will come. Build those
things!

~~~
RangerScience
This has somewhat happened a lot. To an extent, the entire crafting genre owes
itself to DF, which inspired Minecraft, and between the two of them, a genre
was born...

However, as yet, no-one's come close to the epicness of the generated world
and story, even if they've made progress on the core gameplay.

~~~
andrepd
I hear that claim, but do you have sources to back the fact that Minecraft was
significantly influenced by DF? I mean, there was a crafting mechanic before
DF, right? And not many gameplay elements from DF found their way into
Minecraft at all.

~~~
beardog
[http://notch.tumblr.com/post/227922045/the-origins-of-
minecr...](http://notch.tumblr.com/post/227922045/the-origins-of-
minecraft#_=_)

~~~
placeybordeaux
Dead links galore, the way back version has the images, but not the games nor
videos:

[https://web.archive.org/web/20091102174928/http://notch.tumb...](https://web.archive.org/web/20091102174928/http://notch.tumblr.com/post/227922045/the-
origins-of-minecraft)

------
tomc1985
For all their advancement in storytelling and worldbuilding, it is still _so_
frustrating to try and play DF today. I did not grow up with Roguelikes and
ASCII characters or backwards-ass vim-style key-memorization GUI patterns, and
the nostalgia that surrounds these things is simply annoying. The noob pack
helps but what it really needs is for that isometric graphics mod to become a
full UI layer. Mid-90s WinForms would be an improvement over what DF's got.

It is painful to see people so smart pooh-pooh something so obvious as a
_useable_ UI (I won't say "decent", because "decent" nowadays is this
brightly-colored material-design garbage) that isn't super painful for people
who like to come and go.

~~~
VonGuard
Anything worth doing takes a lot of work, and Dwarf Fortress is no different.
It really is a matter of putting in the hours. But thanks to dozens of radical
tools, you, too, can turn your fortress into a 3D, moving world.

Treat the experience more like playing with some sort of odd micro-kernel in a
VM, with tools for poking and probing it. Approach it like a software
development tool, or a Linux server and it becomes a little less daunting,
especially as all the letters are on the screen for quick reference, rather
than in a man page.

Still, the beauty of Dwarf Fortress IS that it doesn't care about the UI. It's
not for you. It's not for anyone other than it's creators. It's for Zach and
Tarn. Yes, it's also for the game's fans, but the brothers have always been
building the game THEY wanted to play, and doing exactly what they wanted to
do. They're not beholden to a schedule, or some massive revamp required in
order to make the game more accessible. They're true to their own desires and
souls.

They're artists. This is their art. Yes, it is truly impenetrable, but as with
almost all art, taking the time to delve deeper is uniquely and spiritually
rewarding. Yes, spiritually.

~~~
taneq
> Anything worth doing takes a lot of work, and Dwarf Fortress is no
> different. It really is a matter of putting in the hours.

And this is why, fascinating as it sounds, I'll never play Dwarf Fortress. I
already have a job, and I get paid for it not only in satisfaction but also in
money. It's awesome that they're able to devote their lives to their artwork,
and I like reading about it from time to time, but in the end it's an
unappealing value proposition for someone with limited time.

~~~
8_hours_ago
I agree 100%. I am very fascinated by Dwarf Fortress, but with a full time
job, a family, and hobbies, I only spend a few hours every other week playing
games. I donated money to them, but every time I think about actually starting
to play I get intimidated by the incredibly steep learning curve. There are
many other games that I can start playing and having fun immediately

That being said, I'm glad that I donated. I feel that I've gotten my money's
worth just from reading about it every few months and knowing that I am
supporting indie game developers. Hopefully at some point it will become more
user-friendly so I can actually play it. Or maybe I should drop some
hobbies...

Does anyone know how long it takes an average new player to get to the point
where Dwarf Fortress is more fun than confusing and frustrating?

~~~
VonGuard
Honestly, just put in one long day. Throw 8 hours at it and by the end you
should be having fun. Honestly. it only takes an hour or two to get going and
learn the basics. The complex things are around specific functions, like
military management, or the complexity comes from a task being difficult, like
irrigation. Honestly, I fell in love with the game on the first day, and it
took me a week or two to really learn the ins and outs so that I could begin
doing complicated stuff. Again, a lot of the difficulty isn't from the UI,
it's from the fact that finding out how to manage things is tough, and the
fact that some of the things you're expected to do are extremely difficult to
pull off, even if the UI were great. Perfect example is dealing with an
acquifier: you have to dig a large, 3d plug into the ground: like a vertical
box. You dig it out, but leave it connected by a small piece of land, then you
dig out underneath it completely for a few Z-levels, then you dig out the last
piece holding it up, and it drops into the Acquifier, making a sort of
horozontal bridge layer through which you dig a staircase to the area under
the acquifier.

Or, like me, you just turn off acquifiers in the Lazy Newb Packs launch
options. Newbs should probably also turn off invasions.

Finally, a quick hint to help your fort flourish: ALWAYS kill the elf traders.
You get all their stuff, and they never invade or get angry. They tend to come
back again, actually, bringing you more cloth and food for free!

------
Natsu
It's funny how you can look at a simple item on that list, say, 'randomly
generated musical instruments' and suddenly imagine a magma-powered tuba that
menaces with spikes of microcline and which has an engraving of a dwarf and
dwarves in orthoclase and rat leather relating to the founding of Doomedice on
the Forgotten Glaciers of Terror in 1387...

~~~
yaur
Where it falls down is that none of that has any meaning. There is no context
to explain why Doomdice or the Forgotten Glaciers of Terror are significant,
nor what was going on in 1387 that caused dwarves to settle in such an
inhospitable place.

~~~
grenoire
It all has meaning. It's not just a RNG picking off words from a list and
putting them together. All created masterpieces refer to an actual event in
the history. All worlds have full histories with wars, civilisations rising
and collapsing, megabeasts destroying pregenerated fortresses etc.

------
Sabinus
This game is the masterpiece life's work of one eccentric math PHD developer,
and if you have any interest in fantasy or poetry in your soul I suggest you
give the game a try. The learning curve is deathly steep, so I suggest
starting with the lazy noob pack:
[http://dwarffortresswiki.org/index.php/Utility:Lazy_Newb_Pac...](http://dwarffortresswiki.org/index.php/Utility:Lazy_Newb_Pack)
Strike the earth!

~~~
fzzzy
The learning curve is deathly steep, so I suggest starting with watching
hundreds of hours of other people playing on youtube. Then getting the lazy
noob pack.

~~~
vacri
The joy of DF is learning all the ways you can fail. Once you know how to set
up a fort that can handle itself, the fun largely dissipates.

~~~
fzzzy
There's always somewhere harder to settle. There's always some new creative
contraption that needs to be built.

------
throwanem
The sense of entitlement that crops up throughout this thread amazes me.

It'd be bad enough coming from the people who actually donate the money that
adds up to the steady living the Adams brothers earn by their work on Dwarf
Fortress. Coming from random Hacker News commenters, many of whom hasten to
add that they'd _never_ play anything with such an awful UX themselves, it is
bewildering and disappointing.

Isn't this community supposed to be above such things?

~~~
dopu
It is a bit discouraging. And keep in mind that the game is technically still
in Alpha, everyone.

~~~
jandrese
It has been in Alpha for a decade now. It's not clear if it is ever going to
advance to Beta status.

~~~
iNerdier
Well, he has a set of goals he intends to achieve before it hits 1.0 and the
version numbering currently is meant to reflect the % the brothers deem it
complete. Considering they've managed to spend ten years doing the work I
would say it seems possible it will, eventually, hit beta and even be
'finished'.

~~~
jandrese
Well, it is currently at 0.43, and since we know that the last 10% of the
project takes 90% of the time we can expect the 1.0 to release in
approximately 232 years.

------
dopu
I find it interesting that there are so many complaints about the UI /
keybindings. I agree that the keybindings are a bit confusing once your start,
but I didn't find them to be that difficult to master. No more difficult than
say, learning to use Vim effectively.

However, certain things do become issues once your dwarf population scales
past 15 or so. Checking dwarf occupations manually (e.g., to make sure that
there is at least one dwarf who is currently assigned the furnace operator
occupation) becomes a pain, so I'd suggest using Dwarf Therapist [0] to manage
that. It also lets you quickly check other things, such as whether any dwarves
are feeling particularly sad.

Also, I encourage people new to the game to check out some of the stories that
the community has generated throughout DF's existence. The game's ability to
generate interesting scenarios that lead to good stories to tell your friends
is perhaps the most interesting part of the game. Boatmurdered [1] is a
classic. Roomcarnage [2] is currently in the process of being told and is
quite good.

[0]: [https://github.com/splintermind/Dwarf-
Therapist](https://github.com/splintermind/Dwarf-Therapist)

[1]: [http://lparchive.org/Dwarf-Fortress-
Boatmurdered/](http://lparchive.org/Dwarf-Fortress-Boatmurdered/)

[2]:
[http://www.bay12forums.com/smf/index.php?topic=139393.0](http://www.bay12forums.com/smf/index.php?topic=139393.0)

------
ghotli
Honestly, I think eventually a central question of our time will become
whether or not it is ethical to turn off dwarf fortress.

------
Kapura
This game simulates at a granularity that is light-years beyond anything else
that exists, so it's only fitting that the dev notes should contain goals
which are absolutely impossible to imagine in any other game.

~~~
outworlder
Indeed. From engravers drawing rats on a noble's bedroom walls because they
dislike said noble (who hates rats), to cats getting drunk, because dwarfs
moving around would spill their booze, which would get into the cat's pawns,
who would subsequently lick them... the level of detail is outstanding.

------
bschwindHN
Off topic: Using `background-attachment: fixed` for your background image will
cause high CPU usage as the user scrolls.

[http://fourkitchens.com/blog/article/fix-scrolling-
performan...](http://fourkitchens.com/blog/article/fix-scrolling-performance-
css-will-change-property)

~~~
db48x
Nah, modern browsers simply offload this to your GPU. They send the background
layer to the GPU once, update the foreground as you scroll, and let the GPU
composite them for display. Since this is a screen-space effect, and the fill-
rate of a modern GPU is immense, this is pretty cheap overall.

~~~
bschwindHN
Well a lot of people use Chrome and I immediately noticed a problem with the
site when using Chrome, so maybe it's still something to keep in mind until
it's improved.

------
alanfalcon
This article was my introduction to DF when it was originally posted on HN:
[http://nytimes.com/2011/07/24/magazine/the-brilliance-of-
dwa...](http://nytimes.com/2011/07/24/magazine/the-brilliance-of-dwarf-
fortress.html)

------
shultays
I love DF, played it for a long time but haven't touched it for last 1-2
years. A feew weeks ago I tried to play it again, I was excited about new
features such as libraries and crafting in adventure mode.

I first started with adventure mode, and tried to make a conversation with
someone... tried. New conversation system is a huge mess. Sure it is much more
advanced but interface is needlessly complicated, it takes away all the fun.

I just closed DF and didn't even try fortress mode after that. I love DF but
Toady's tastes with ui is too eccentric for me. I hated military UI when it
came out and now this.

People doing awesome job with DF using reverse engineering. Playing it without
dwarf therapist for example would be a nightmare. I wish it was opensource or
at least had more modability.

------
vog
This looks great, but I hope they don't fall into the "manual window
placement" usability trap.

There is a reason the "old-fashioned" tiling window managers are still
popular. And today most applications are internally structured via
tiling/splitters and tabs, rather than individual window placement. Let alone
that all attempts for a "web desktop" never took off.

Alas, I don't know any authorative sources for that, but I bet that manual
window placement (and most of the time, also overlapping windows) is a well-
known anti-pattern of user interface design.

~~~
alekratz
Dwarf Fortress has never been about its usability and user interface - it's
100% focused on the background processes that drive the game.

------
pavel_lishin
How plausible would it be to take the generated executables, and get actual,
readable code out of them?

~~~
khedoros
It depends how much you like reading a whole ton of X86 assembly language,
with all the variable names replaced with numbers.

Something that looks like the UI code has its source included with the game,
so there's some info to be gleaned there. Also, any interfaces to external
libraries would be fairly easy to trace.

Still: Very difficult, due to the size of the binary (21MB), and the level of
painstaking attention to detail that's necessary to reverse-engineer a program
from its binary. Automatic decompilers exist, but they're fairly limited, and
you'd still have the issues of meaningless variable names, even in the best
case.

~~~
rtpg
Emscriptem has a "loop detection" feature, I wonder if you could apply that to
the binary...

~~~
khedoros
One classic way to handle it is to load the binary into IDA Pro (a graphical
disassembly suite). That starts from the entry point of the binary and traces
through as much of it as possible, noting the locations of strings, function
calls, the state of the stack when functions are called, different segments in
the binary, etc. It'll allow you to view the code in blocks connected by
lines, which indicate branches and loops. As a dev, you can go through the
code then and start working things out. With some investigation and the
context of where you are in the program, things slowly start falling into
place, and you can start putting names to different functions.
Although...Dwarf Fortress looks like it was compiled with GCC 4.5, so I'd
expect things to be pretty difficult to read, just because of non-obvious
optimizations made by the compiler.

I've always thought it would be useful to have a debugger that logs all the
locations that data is read from or written to during execution, and which
addresses were executed as instructions. Just play the game for a while to try
to get some good code coverage, and import the data as extra input into IDA
(probably you'd have to write your own plugin for that too).

------
edem
Toady should decouple the ui from the game so people could write a nice ui for
a change. The only thing which stands between me and the game is the horrible
ux.

------
loydb
Once a year or so, I pick up DF and play for a few weeks just to see what has
changed. Coincidentally, I just finished my 2016 playfest last month.

I am sold on the ASCII graphics, especially once you drop in a decent
replacement set. Generating unique icons for all the bazillion different
things would be a huge undertaking graphically, and you pick up what things
are quickly.

Sadly, the UI (and I use the term loosely) is still, well, awful. The menu
system makes no sense (sure, you can memorize where something is, but that's
not what I mean), and the keystrokes seem to be randomized across menus. As
others have said, there's actually a pretty good game under there these days.
It's just horrible to interact with.

~~~
sageabilly
Is Dwarf Therapist still being maintained? (I'd look it up but I'm at work and
all DF stuff is blocked by the firewall as "games") DT made the difference
between playable and fun DF and endless fucking about with menus.

~~~
dopu
Sure is [0]. Really grateful for it. I don't think I'd be able to play this
game without using Dwarf Therapist. Generally it becomes way too difficult to
manage dwarf occupation assignments once your population shoots past 15 or so.

[0]: [https://github.com/splintermind/Dwarf-
Therapist](https://github.com/splintermind/Dwarf-Therapist)

------
jealousgelatin
Love DF. Didn't know the community was so vast. Fingers crossed for open
source, definitely would add some years of playability for the kiddies.

Praise the miners!

------
RangerScience
If you want to read the best stories the community has gathered from playing
this game, here's a collection!

[http://www.bay12forums.com/smf/index.php?topic=41896.0](http://www.bay12forums.com/smf/index.php?topic=41896.0)

------
gldev
I am thankful enough to have this incredibly fun game available to me; let's
hope they can keep improving it.

------
AustinG08
No offense but trying to read a list with that background burns the eyes

~~~
cryptoz
Not sure why you're being downvoted. I agree. Merely opening that page made my
eyes and head hurt immediately so I had to close it. I get that the game isn't
for me, or for you, but it's a valid thing to say. I have a minor headache
because of this page, and while that's not something I would normally complain
about, I think it's a perfectly valid thing to say.

~~~
AustinG08
I find the responses to my comment pretty great. I find the comment that "the
game is not for me" particularly amusing. This game is right up my alley. I
knew I would get downvoted for posting what I posted, but I feel it should be
said. Contrary to what the other guy says, I feel it's a valid contribution in
itself. I get that the background is the game. I get that it is a brilliant
game. I get that it is a cult classic. I don't care if nobody cares. It is a
fucking terrible background to read text on.

~~~
intended
Actually, you could even mention it to the brothers, its quite possibly
something they may eventually get around to fixing (if its a small enough
fix).

Or you could wait till someone makes a web page which tracks and sorts all the
goals into a readable tree, thus side stepping the issue all together.

------
volak
I love the game and have played it many times over the last 5 or so years...
But does anyone else feel kind of betrayed/insulted that the project is not
open source? The team is mostly just supporting 1 or 2 core devs who take
years to release new features - and for a while now tools like dfhack are
basically required to play the game.

The game has a huge community of fans but no one can contribute in any
meaningful way. I dunno I find it mildly frustrating.

~~~
Raticide
I don't think he even uses source control, so I imagine the code is not the
cleanest.

~~~
snerbles
I wonder how many self-conscious developers are out there, that don't release
their source code for fear it having glaring flaws that will bring the wrath
of their peers upon them.

~~~
Joof
I know a professor working on a potentially important project that won't
release his code and I suspect it's precisely for this reason. The communuty
would tear him apart for sure, but it would be worthwhile to release it
anyway.

~~~
jhbadger
This is a real problem in academia and not just because of superficial coding-
style issues that the authors might be fearing criticism for. There is a real
probability of serious bugs. There have been papers that have had to be
retracted because the analysis software used was later discovered to have bugs
that caused incorrect results (things being called statistically significant
that weren't, and so on).

