Live data from Hacker News

How Dwarf Fortress is built

stackoverflow.blog

301–310 of 407 posts

Re: How Dwarf Fortress is built

#301
post #33

> What’s your favorite bug and what caused it? > A: It’s probably boring for me to say, but I just can’t beat the drunken cat bug... That was the one where the cats were showing up dead all over the tavern floor, and it turned out they were ingesting spilled alcohol when they cleaned their paws. I think that bug explains very well just how deeply complex Dwarf Fortress really is. Drinks can be spilled. Some drinks ha…

Other amusing DF bugs: Dwarfs trying to clean their inner organs (dwarf wounded, doctor closes the wound, dirt stay inside) Undying children in the moat water (for years... just swimming there...) Killer carps (there was a long time during which carps were really overpowered because constant swimming was buffing them up really good, dwarfs getting close to water sources were eaten by carps) Catplosions (Tarn loves ca…

> Dwarfs trying to clean their inner organs (dwarf wounded, doctor closes the wound, dirt stay inside)

I'm curious if the fix was to just remove the dirt from the simulation or if Tarn actually went ahead and simulated infections (or more realistically, used an existing infection mechanic).

Re: How Dwarf Fortress is built

#302
post #256

Earlier quoted context omitted.

Nah, the problem is OOP polymorphism that conflates too many separate things. If you have a language that can actually express "implements this interface", "has this member", and "delegates this interface to this member", then you don't need traditional "extends" inheritance at all; sometimes you want to do the exact equivalent (and you can), but most of the time you want to do something narrower.

Is that an example of decorator pattern?

Kinda - an instance of an OO subclass is a decorator around an instance of its superclass, so if you're using a language which has a good way of expressing decoration then that's usually better than using inheritance.

But as the other reply said, patterns are a language smell - the language needs to support that style and make it idiomatic. Otherwise, if you give people the choice between doing it right but verbosely and doing it wrong but more quickly, guess which one they'll choose. https://www.haskellforall.com/2016/04/worst-practices-should...

Re: How Dwarf Fortress is built

#303

Earlier quoted context omitted.

Is that an example of decorator pattern?

I'd say that that's an example of structural or duck typing (as opposed to nominal typing). In my experience it is nigh impossible to design-pattern your way out of a language simply being unable to express what you need it to express without incurring a severe performance penalty (anathema for game development) or resorting to code generation (which is itself prone to ending up as a Gordian knot).

> I'd say that that's an example of structural or duck typing (as opposed to nominal typing).

No it's not. I'm talking about having nominal typing but easy support for delegation (e.g. look at how Kotlin does it).

Re: How Dwarf Fortress is built

#304

Earlier quoted context omitted.

Other amusing DF bugs: Dwarfs trying to clean their inner organs (dwarf wounded, doctor closes the wound, dirt stay inside) Undying children in the moat water (for years... just swimming there...) Killer carps (there was a long time during which carps were really overpowered because constant swimming was buffing them up really good, dwarfs getting close to water sources were eaten by carps) Catplosions (Tarn loves ca…

> Dwarfs trying to clean their inner organs (dwarf wounded, doctor closes the wound, dirt stay inside) I'm curious if the fix was to just remove the dirt from the simulation or if Tarn actually went ahead and simulated infections (or more realistically, used an existing infection mechanic).

DF does simulate infections. It often kills dwarves months after being wounded, if they dont get their wounds properly cleaned (with soap).

Re: How Dwarf Fortress is built

#305
post #34

Earlier quoted context omitted.

Passion project? It is the sole source of his income.

I've been working on a project for a long time. It's not even yielding income, though I hope it will. A friend referred to it as a passion project. That hurt for some reason. I can't explain why.

I once called Rust a 'hobby language' on #rust on freenode. It turns out it's the most offensive thing you can say to sirius cats.

Re: How Dwarf Fortress is built

#306
post #265
post #144

Earlier quoted context omitted.

Yeah I agree with this, I would feel hurt too. For some reason the word "passion" has this hidden connotation for me which makes me feel like the project isn't serious, isn't making money, isn't popular, and is just eating up all my time as it is something I constantly obsess over. In the case of Dwarf Fortress, I would say for him it is "the sole project he's been working on for 20 years now, which takes up $large_n…

Why can't a passion be serious or popular?

Because, increasingly, doing your job is a mind-numbing, passionless activity? Most people retire as soon as they have an opportunity, and if they don't it's because they need more money. Imagine a world where people often take pride in their jobs and keep working past retirement age because they enjoy it. Is that fantasy or science-fiction?

Re: How Dwarf Fortress is built

#307
post #150

Earlier quoted context omitted.

My favorite feature in Dwarf Fortress is that all eyelids automatically clean their associated eyeball, just so that players don’t post about how their dwarves have vomit on their eyeballs.

Ahh, so if a dwarf would have a missing eyelid because of combat or some mining accident, then they could have vomit on their eyeballs.

Yes! And the next time they cleaned themselves, they would use soap on that eyeball, if it was available.

Re: How Dwarf Fortress is built

#308
post #33

> What’s your favorite bug and what caused it? > A: It’s probably boring for me to say, but I just can’t beat the drunken cat bug... That was the one where the cats were showing up dead all over the tavern floor, and it turned out they were ingesting spilled alcohol when they cleaned their paws. I think that bug explains very well just how deeply complex Dwarf Fortress really is. Drinks can be spilled. Some drinks ha…

The beginning of this video https://youtu.be/VAhHkJQ3KgY has Tarn Adams speaking about this bug.

I love that video. I tend to link it when I want to explain Dwarf Fortress to someone.

Re: How Dwarf Fortress is built

#309
post #200
post #33

> What’s your favorite bug and what caused it? > A: It’s probably boring for me to say, but I just can’t beat the drunken cat bug... That was the one where the cats were showing up dead all over the tavern floor, and it turned out they were ingesting spilled alcohol when they cleaned their paws. I think that bug explains very well just how deeply complex Dwarf Fortress really is. Drinks can be spilled. Some drinks ha…

Noita also had a fun one during early development: deer drowning in their own urine. And now that I dug up the Reddit AmA thread ( https://old.reddit.com/r/Games/comments/d7cqjz/we_are_nolla_... ), there's a comment there about the drunken dead cats ...

Noita simulations are better told as animated gifs.

Re: How Dwarf Fortress is built

#310

Earlier quoted context omitted.

LOL - 5386: Imprisoned Vampire Elected Mayor

> Imprisoned Vampire Elected Mayor That's not even (necessarily) a bug: whether convicts can win/hold elected positions is a aspect of applicable law (albeit a weird one), vampires (IIRC) have high social stats and skills and so are well-postioned to win elections in general, and dwarves (and for that matter humans) don't necessarily update their opinion of someone just because they were convicted of a crime (especia…

Yeah exactly. Also top tip is if you actually catch a vampire in DF a known thing is to imprison them in a room with all your switch levers in and a desk and chair so you can make them your accountant. They don't kill anyone that way and can do useful work.
Post reply on HN