Hacker News new | past | comments | ask | show | jobs | submit login
The Brief, Incredibly Poetic Life of Bañec Hazyblockades: A Dwarf Fortress Diary (rockpapershotgun.com)
180 points by smacktoward on June 29, 2018 | hide | past | favorite | 34 comments



If you are curious about Dwarf Fortress and want to understand the attraction without necessarily grinding through learning how to play the game, I highly recommend watching some of the play throughs on Youtube by Kruggsmash: https://www.youtube.com/user/kruggsmash/playlists

He is currently illustrating his adventures and it is nothing short of amazing. It's hard to know where to suggest starting, but basically he began his current story telling and illustration technique in Steelclutches Part 2. That's actually adventure mode, though, so it might not be the best place to start. The current series, Monster Killer, is stand-alone so you could probably start there.

However, one particular special episode it worth watching, which is the first Holiday special: https://www.youtube.com/watch?v=uiy8zCvD_1U&t=3s


Thanks for sharing, I just watched Monsterkiller episode 1 and it was hilarious and really entertaining.

I'm a bit lost as to what many of the sprites are, and I'm still unclear on many of the game's mechanics, but hopefully things become clearer over time.


I've been playing the game for several years and that still describes me :-). Although, he uses a custom font -- normally it would be only characters in codepage 473. He's modified it so that some of the items in the game look closer to what you might expect. Quite a lot of people like his font for the game, but personally I prefer to have just normal characters.


A perfect time to whip out the sad story of one of my dwarves. Important to note that NONE of the details in this story are embellished, they are all simulated in-game:

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 a mother carrying around her small child.

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.

Her name was Môsom.


>NONE of the details in this story are embellished, they are all simulated in-game

This is the crucial thing that distinguishes DF stories from LP writeups of other games. Other games provide maybe some suggestive details and you have to read between the lines. DF stories have to be pruned down from the huge amount of detail in the world.


Cataclysm: Dark Days Ahead also gives this deep simulation experience in the form of an ascii survival game.

You’ll be hopped up on cocaine trying to offset the painkilling effects of the opioids, so you can maintain the necessary concentration to install a nightvision cybernetic enhancement directly into your eye, when a once domesticated hungry dog stops by and sees you as a regrettable alternative to starving. Knowing you won’t survive the encounter in your current state, you throw a grenade at it just to be on the safe side. Except, you didn’t throw it cause in your euphoria you decided to take a little micronap.

Or: you build a freaking TANK powered entirely by an array of solar panels. It doesn’t move very fast or far given its power source, so you just let it roll forward on its own while you read a book from before the cataclysm about How to Win Friends and Influence People (in case you ever actually meet anyone). While you’re reading, you accidentally crash at 5mph into a wall. You get out to repair the minor damage, and a zombie grabs you, and hundreds more are spilling out. If only you were in your tank...you bludgeon the zombie with your book and think about how to Win Friends and Influence People.



Stable releases are very old. 'Experimental' builds are very stable and most players update to newest build regularly. Some prefer to use a launcher for automatic updates: https://github.com/remyroy/CDDA-Game-Launcher/releases


Well shit, I'm sold. Dwarf Fortress is a delightful idea, but it was never something I was actually going to play.

This, though... this is exactly what I want.


Use the latest experimental build


Is it still under development? The OS X builds appear to get built daily, but the last blog post is over three years old, and so are the stable releases.


Use the experimental builds. Active development with a very active modding community.


> This is the crucial thing that distinguishes DF stories from LP writeups of other games.

I had never heard that term. To save others the time of googling it:

https://en.wikipedia.org/wiki/Let%27s_Play

A Let's Play (commonly referred to as an LP) is a style of video (or a screenshot accompanied by text) series documenting the playthrough of a video game, usually including commentary by the gamer. A Let's Play differs from a video game walkthrough or strategy guide by focusing on an individual's subjective experience with the game, often with humorous, irreverent, or critical commentary from the gamer, rather than being an objective source of information on how to progress through the game.


> I was still waiting for the message that the mom had died. It didn't come.

This really reminded me of the time body recovery divers rescued Harrison Okene: https://youtu.be/ZPz8mxJNPh8

Choice quote:

Diver: Uhghgh!

Mission control: What's that? Oh ok, that's horrible. You found one yeah?

Both: HE'S ALIVE!

Mission control: Fkn hell... I don't know what we're going to do


You told this story here years ago and I still remembered most of the details. Very enjoyable!


Check out Boatmurdered for a look at how a dwarven fortress spirals into amazing and beautiful chaos: https://lparchive.org/Dwarf-Fortress-Boatmurdered/Introducti...

That version is very, very old however and doesn't reflect current gameplay style or mechanics, however the stories still unfold pretty much the same way.


For me, Roomcarnage is one of the best Dwarf Fortress stories. It's presented as a set of imgur albums, listed here: http://www.bay12forums.com/smf/index.php?topic=139393

It's also a recent enough version, with gameplay similar to the latest ones, and I find the illustrations and writing style to make the whole thing very enjoyable. It might still get updated in the future, though the pace of updates has now slowed down considerably.


Given the most recent update, it seems pretty certain the next one will be the last... but I am quite curious about it.


I'm not up on DF's internals, and basic Googling doesn't really clarify to an outsider - what's so big with the current update, and why would it make the next one a final release?


I think they’re talking about Roomcarnage updates, not DF updates.


This article catches one of those typical moments of dwarf fortress.

A moment where you are mining through the menus of something new you haven't tried before, and then being gobsmacked by the options available to you.

In this case, when the author got to looking at his list of possible actions he finds that he has a huge list of poems he can recite.

And then you can actually recite them to the audience and have people respond to it.

By all criteria of code and project management that's just a huge waste of resources to code up.

But it is so much fun to read.

What bugs me a bit about DF stories of late is that I don't see many which engage with the new and weird mechanics the game has introduced.

Maybe I'm not looking hard enough but I've seen very few videos/gifs of dances in the game, or even people messing around to show what that bizarre musical instrument the game generated was like. (I remember something like a stone keyboard/glass organ)


No Dwarf Fortress comment section is complete without a link to Tim Denee's excellent Bronzemurder and Oilfurnace.

https://www.timdenee.com/bronzemurder

https://www.timdenee.com/oilfurnace


If you like the idea of Dwarf Fortress but want more sci-fi and less ASCII, check out Rimworld. The game has a similar bent towards story-telling with crazy events that befall your beloved colonists. It's far less daunting to the newcomer than DF.

That said, this diary is great. "The goal is simple: try to survive and thrive in Adventurer mode of Dwarf Fortress by relying mostly on the poetry and language skills." Oh this is going to be good...


I've always been amazed by all that interactivity and depth that DF can provide procedurally. And the amazing behaviors the NPCs can exhibit. How do you program something like this? It just seems like there are so many interacting layers of complexity and nuance. Does anyone know any good sources on how one programs an NPC like this to interact in such a complex procedurally generated world?


From what I remember, Dwarf Fortress was born out of an obsession for procedural fantasy world generation. Plate tectonics, extremely accurate weather modeling, in-depth socioeconomic simulations that give the world a life of it's own, extremely detailed life & death scenarios that play out in real time. It's awe inspiring.

As for your question, check here: http://dwarffortresswiki.org/index.php/List_of_Dwarf_Fortres...

I'm not sure if they've ever truly gone into detail regarding their methods, but they've done high-level overviews here and there that I've seen.


Keep in mind that the lone developer has been continually (?) working on DF for more than a decade. I suspect that's the key ingredient.


Tarn considers DF his life's work and intends to work on it "until it's done", possibly for the rest of his life. That's dedication.


I've never seen the source code, but if you play the game a lot, you can get a feel for how the code must be structured under the hood. In many ways, DF is an example of what programmers tend to try to avoid. Instead of isolating functionality so that it doesn't affect something else in the game, the code is structured so that when you alter one tiny thing in one place, it has an effect on the other side of the code base. Quite frequently when people ask Tarn how something is supposed to work, he doesn't know. It's probably one big mess of code that relies on a lot of mutable global state.

What I've found really interesting, though, is that apart from the numerous bugs (and even more numerous regressions) the fact that it's all connected is charming. It's actually not hard to overlook the obvious craziness of the code interactions and add your own thematic explanation.

To take DF's most famous bug as an example: when the tavern update happened, cats were often found vomitting and/or dead. What happened was that when dwarfs are interrupted when they are drinking, it was decided to make them spill their drink on the ground. There is a system for tracking "contaminants" (for example, blood, mud, deadly dust, etc). Whenever something walks through a tile with something like that in it, it gets spread to tiles that the creature walks over. Every creature also has many body parts, so if they walk through something on the ground, that thing is marked as being on their body part. So when the dwarfs spill their beer, the cats can walk through it and it get's marked as being on their paws. A long time ago, there was a combat element added that allowed lizards to lick their eyes in the case that they got contaminants in their eyes. This allows them to regain vision at the cost of ingesting the contaminant (which could poison them). At the same time, because Tarn really likes cats, he decided that cats should occasionally groom themselves by licking contaminants off their body parts. There is also a system where creatures metabolise contaminants -- it's based on creature size. The bigger the creature, the more beer/poison/deadly dust it can drink/be exposed to before it dies, for example. So the cats were walking through the beer, getting it on their paws, licking it off and ingesting it. This was not planned behaviour, but just the result of a lot of different interconnected systems that were built up over several years. However, there was a bug. When contaminants were marked as being on a body part, it didn't indicate how much. It just defaulted to 1 unit (known as a "urist" -- all measurements are made in "urists" and the actual meaning depends on the kind of measurement). For liquid volume, I think a urist is about 1 pint. This was a placeholder (which is common in DF) until Tarn would get around to deciding how much contaminants to attach to things. The problem was that when the cats were licking their paws, they were drinking a pint per lick -- which quickly made them vomit, pass out and then die.

The interactions in the code are pretty clear -- it's just a bunch of semi-related processes working on global state. A bug, or placeholder in one process can potentially affect every other process. However, from the perspective of the game, this bad practice becomes magical. It's "OMG! Cats are vomiting because they are licking off beer that they picked up while walking through beer on the floor of the tavern that was spilled by dwarfs running off to a battle. This game is incredible".

This example has made me really think about the value of allowing a little chaos in the development of games. If you control every aspect of development so that everything is deterministic, it really helps in keeping the bugs down. However, it's probably not going to have the same kind of emergent behaviour. I don't think I would go to the same extreme that Tarn does (there are way too many placeholders and bugs in the game for my liking), but having his example has been really illuminating for me.


Dwarf Fortress is so wonderfully rich and incomprehensibly dense. Plus, the patch notes are so varied that they make for some fun found poetry: https://medium.com/@henryoz/issues-a-dwarf-fortress-found-po...


I don't have the patience to actually play DF, but I always love reading people's play-throughs.


Me too. I occasionally read them and try to play and the whole process just feels bad. I'm not averse to hard games, I ascended in Nethack but I think I rather just be a spectator for this one. Sort of like EVE Online.


This comment captures one of those moments which makes dwarf fortress.

Plumbing some odd appendage of the program, going through various menus and options and then having that moment of incredulity as you see a ridiculous set of options appear where you expect none.

In this case the op is fiddling around with being a poet.

When it comes to recite poetry, he finds his character has pre learned a large number of poetry, all of which is of course produceduraly generated.

And behind it, you see how the songs have been influenced by different cultures (the enslaved goblins, and ruling dwarf cultures)


Is there a way to subscribe to this particular series, via RSS or email or anything?

edit: hm, looks like my best option is an RSS feed for the "dwarf fortress" tag: https://www.rockpapershotgun.com/tag/dwarf-fortress/feed/


Are there any roguelikes designed specifically for story generation? DCSS is probably the most playable but with the least interesting stories, DF may be the inverse.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: