Hello and goodbye community,
I have thought long and hard whether or not I would take the time to type this up and share this.
I am a n00b Dwarf Fortress player, only been playing for 3 weeks. I am also an expert, because I have produced, designed and sold games. So I am in the "fortunate" position of both being a fresh set of eyes as well as someone who can articulate very clearly why I am leaving. The reason is quite heavy however, so this is my third rewrite of this post. First some context:
The bane of my existence was Doren the metalcrafter. My first fort fell to a stress-spiral and she was there. The moment I saw her come in at my second fort, I knew she was trouble and tried everything to make her happy. The third fort I made just for dwarves like her with all the knowledge of the wiki and this forum and she followed me there too, but she slipped out of the burrow/locked door combination during the food delivery (didn't know about food drops back then) and stress spiraled the third fortress as well. So I made another world and another fortress.
I want to stress that my perspective is not negative, not at all. I LOVE this game and in the last three weeks have played hours and hours and hours of it. The reason that I am leaving is heavy, yes, but the main emotion I feel is gratitude. I am leaving out of love of the game. Which is why I am going to spend a lot of my time trying to think along on how to solve this and share that with you. Call it a parting gift if you will.
I also want to state that with the help of this thread and especially Loci's !!Science!! on the stress mechanic, I have been able to 'solve' the stress problem. This has given me a much better and more profound way of looking at this problem, so I want to thank @Loci specifically for all he has done for the community.
What do we know:
- Loci has clearly demonstrated that unmet needs and stress share no correlation or causation. Both trigger show up in the thoughts section and that is it. Contrary to popular belief meeting the needs of your dwarves does nothing for their stress relief.
- Certain trait_facets are detrimental. Stress_vulnerability is the most important one to avoid. "Cracks easily" is the worst, because at 'becomes completely helpless' you at least have a 50% of the dwarf going catatonic which ends the problem quickly for the Armok.
- A build up of stress leads to: catatonic, melancholy, madness, berserk. Concretely this means: death, death, some extra stress spreading and then death, or a lot of extreme stress spreading through wantom murder and then death. In all cases the corpses and loss of loved ones cause stress to spread.
- Memories of negative events create more negative events in the future. This means big negative events have lasting big negative consequences. This creates negative feedbackloops depending on the stress_vulnarability facet (see above).
- Given infinite time three types of dwarves will emerge: +9.999 "coolheaders" or minus -180.000 "breakers" and 0 for new arrivals. (the exact numbers do not matter much, it's the process that counts)
- Given that stress spreads automatically (death of lost ones and seeing corpses on the mimimum) as well as unavoidably and 'coolness of head' does not spread automatically (every dwarf can tantrum, not every dwarf can console or get yelled at) and does not spread unavoidably, stress spirals on the long run are now mechanically unavoidable. This means the system will automatically devolve into stress spirals with more -180.000 'breakers' than +9.999 " coolheaders", unless action is undertaken. I would like to remind people that this is NOT a design problem per se. Invaders are also mechanically unavoidable, and that is fine. Because we get to stop that from happening it becomes a design feature. That's the core of the losing is fun cycle remember.
If I have missed important data, please let me know. I will check back in a week.
Finally the softer data or the interests&viewpoints: Grouping the interests and viewpoints is important, because if we wanna talk about solutions, we need to take all viewpoints into account. Ideally everyone gets their cookie.
When it comes to stress I see about three types of responses in this thread:
1) The pragmatists: Any solution is a good solution.
2) The immersionists: I want to save all my dwarves.
3) The high overs: I want my dwarves to be happy, but I don't want to micromanage them.
These groups also explain easily why this problem wasn't a big issue in the past, but is big now and how we got here: (explanatory power is important for these kinds of groupings)
In the past we had the 'My child died, but hey, look at my new ferrari. It's all good now'-dwarven solution to stress. The group 2 people didn't like that very much. Mind you, they didn't actively hate it, they just didn't like it. The group 1 and 3 were fine with this, or even thought it was funny. Silly dwarves, ferrari's don't solve your lifes problems. Funny, because it's true.
The current situation only works for pragmatist group 1. You wait for a tantrum and atomsmash those that break. Easy enough. Group 2 still do not want ' my ferrari makes everything ok'-dwarves, but having to atomsmash those that mentally break down is very much not ok. Much worse than 'my new ferrari makes everything ok'-dwarves. Lastly, the current situation creates a lot of micromanagement to make sure your fort survives to FPS death (or whatever your long term goal is), so group 3 is really annoyed with this.
So the small problem is now a big problem and we can easily explain why using the perspectives and interests of the three groups.
Mind you, this is a global description, people can fall into multiple categories, so please bear with me. (unless I have actually missed an important 4th perspective, in that case please let me know. I will be back next week for the last time to answer questions and a final update and such.)
So far I haven't said anything new. This all shouldn't surprise any of you.
Now to my proposed solutions.
I am going to assume that Threetoes falls in group 2 and Toadyone mostly wants to know how much coding will be necessary to create the changes. So I will be grouping them by the amount of coding necessary. I will add which groups will be satisfied with each solution.
Solutions
No code solution
- Change the flavour text
Description: Don't change the code, change the player expectation. By changing the flavour text we can change the way the players view the problem. Examples: Harrowed changes to "This dwarf is beyond redemption. Some just do not make it." Haggard changes to "This dwarf is becoming a danger to himself and others. At this stage only a miracle can still save this dwarf." Stressed with life changes to "This dwarf is teetering on the edge of madness. Despite your best efforts this dwarf is nearly certainly destined to go insane."
Solves for group: 2 and 3. Group 2 will know that it will be impossible to save them and stop trying to save those that cannot be saved. Same goes for group 3. Beginners will probably view this as a not fun failure, so for the beginner group this is probably not the most optimal solution.
Code implications: None, the code can remain the same, only the content changes.
Low Code solutions
- the pilgrimage
Description: Since time memorial people have gone on pilgrimages&walkabouts to find profound personal change. Why not make that a feature? What if those that go on a pilgrimage change their trait_facets in a new random roll? Not only gives this dwarves that lose the DNA-randomisation lottery a second chance, but it gives the world a deeper flavour. All those dwarven pilgrims you see at your fortress? Well, now they all have a mysterious reason to be there. They didn't like themselves and will return one day to their own forts, changed dwarves. You toss them out, and you may see them again, you may not, but you know you have done a good thing regardless.
Solves for group: 2 and beginners. For group 2 instead of expelling dwarves you send them on a pilgrimage. Behind the scenes these dwarves reroll their trait_facets and get tossed into the pile of dwarves that can potentially return to your fortress. Beginners will need to learn about this through the wiki, as it isn't intuitive that sending your dwarves on pilgrimages will help with stress, but it is a lot easier then making a waterpump, so this should be doable. For group 3 this still means micromanaging unfortunately, because you have to actually still 'expel' them manually and if they return there are no guarantees the dwarf will right him/herself without a lot of manual labor. (not unless toadyone uses the lazy option see below).
Code implications: We take the "expel" codebase and copy paste it, with a different title. Instead of expel, we name it 'pilgrimage.' We add code from the character generator and overwrite the current trait_facets, or if you wanna be lazy about it, just change all the stress_vulnerability pilgrims to "is confident under pressure." The big benefit is that if you solve it the lazy way that once the dwarf returns he/she will eventually 'automatically' overcome all the negative memories without player intervention. Note that the lazy option can lead to player abuse though mass expelling. On the other hand, if players are willing to spend hours on sending every new dwarf on a pilgrimage to play the numbers game, then why not let them?
Medium code solutions
- the sanatorium
Description: Make it a feature, not a bug! This solution leans into the idea that the current codebase is exactly what we want, just like the invasions. It adds a way to build a solution for the players recreating what already works from a design perspective, just in a different format. Say you can make a "temple complex" that needs a 1.000.000 dwarfbucks value and inside it the sanatorium become tranquil. You create a space wheren negative modifiers no longer apply. Negative memories, seeing corpses, getting rained on, it all doesn't matter anymore inside the sanatorium. A place where stressed out dwarves can go and recuperate from the stress of life. Some dwarves will need to go their regularly, others only sometimes and the 'cracks easily, quick to anger, childess'-types will have to live there permanently. That way we Armoks have to make a ridiculously expensive sanatorium, but it gives us the possibility to correct our mistakes in a way that makes intuitive sense.
Solves for group: 2, 3 and beginners. In the beginning a player will not realize that they need to burrow their sanatorium, because the patients will get out. Once they figure that out however, they can just send dwarves in there from time to time if they are caring group 2 Armoks. Or if they are high overs they can just wait for which dwarves crack and get them in there. So this fixes it for everyone AND adds features AND is intuitive.
Code implications: We take the codebase of the temple. We change 'shrine' into the name 'retreat' and 'temple complex' into 'sanatorium.' We change the name of the highpriest to psychologist. The change that priests can console is already in the code, so we are good to go on that front. Then the only major change, inside the sanatorium we code that the negative modifiers of stress can no longer occur. (psychologists immediately become the most sane dwarves, which is not realistic, but it's a fantasy world, we can look the other way)
High code solutions
- the 2 factor way
Description: Change the underlying system. At the moment we have 1 variable that goes up and down. This creates the ferrari-dwarves no matter what you do. In real life motivation and demotivation are not 1 variable. Intuitively we know that a new ferrari doesn't make the death of a child go away. As grateful as we would be to receive a ferrari in those times, they aren't related in any way. We can feel both motivated and demotivated at the same time. So instead of representing (simulating) the dwarven state of mind with 1 variable, we do it with 2 interconnected variables. (IRL science: Herzberg Two factor theory.) We also introduce the hedonistic threadmill that every month lowers the scores by a random 10-50%. That way the ferrari dwarves become used to their good lives, although their ferarri will immediately start to make them feel better again every month so the ferarri is still worth giving. Better yet, taking the ferarri away will actually make them unhappier on the long run. A nice little bonus I would say.
On the other end of the spectrum, the stress_vulnarable will get a boost every month, although their bad memories will immediately start to make them feel worse again unless action is taken by the Armok. The central idea is to create a system that doesn't let ferarri-dwarves coast through life, as well as making sure that stress_vulnerable get some reprieve every now and then. It also creates a very valuable regressing to mean for player actions, which means that players that actively try to help their stress_vulnerable will see immediate effects after a month or 2 while still ensuring that actually getting them completely happy will be extremely hard for the stress_vulnerable. Actively getting involved as an Armok will help immediately, giving you the agency as a player, while also acknowledging that really helping the stress_vulnerable dwarf become extatic would be a monumental task.
Solves for group: 2, 3 and beginners.
Code implications: We keep the 'stress' variable and rename it to demotivation. (just trust me on this one, "getting rained on/seeing a corpse" being called a demotivator instead of a stressor just works better for marketing reasons). We define a secondary value called 'motivation.' Then we add a couple of clauses that make intuitive sense. If 100% motivation + 100% demotivation = full blown burn out, or catatonic dwarf. If 0% motivation + 100% demotivation = rebelling against the unjust system, or berserk. if 0% motivation + 0% demotivation = depression. We also keep the warning behaviour but we code it differently. Obliviousness will be for instance 75%+ motivation and 75%+ demotivation. This clearly signals to the player, this dwarf is going catatonic unless you do something. Finally we add a line that every month the variable is lowered by 10-50%.
Or as I reread it for the final time before posting: Maybe we can use the distraction table with the needs. We have the stress variable, we have the needs/distraction variable, if we just rename them motivation and demotivation variables and we add the clauses that would work as well, with a lot less coding. Well, that and adding the variable lowering 10-50% each month of course.
- the five factor way.
Description: The two factor way is an obvious gross simplification of the human mind. If we want to create something deeper, than taking the five basic emotions would be a much more realistic representation. For dwarf fortress I think the motivation/demotivation is the main thing, because as Fortresses get higher than 150 dwarves we are humanly incapable of feeling empathy for that many dwarves. At that level demotivation/motivation is really all that matters. You don't wanna work your dwarves to death and want to keep them modically happy, but you don't have the time and/or brainspace to care for all of them. At more than 150 dwarves we all become group 3, whether we ackknowledge our human limitations or we do not.
Solves for group: Mainly for group 2. Group 3 will have a lot more to worry about, so that means more micromanaging.
Code implications: The Dwarf Fortress game and (for instance) Dawn of Man already have a lot of problems going from the level of the starting micromanagement game to the higher macromanagement level, let alone to the economic level (I have seen the failed economics experiment, and Dawn of Man also has trouble going to the next complexity level of social interaction where institutional behaviour becomes important, so this is not a DF only problem). 5 factor emotions would only excacerbate that problem. Still, if more emotional depth is wanted on the micro level, we could start with the 5 basic emotions. Fear, anger, happy, sad, disgust. It would be wise to code this more as colors than variables. Just like 3 base colors create all the other colors in existence, the five basic emotions create all the emotions in existence. Plus all the emotions people have are created the moment something happens, so this abstraction would work extremely well. So seeing 1 friendly corpse would immediately give a dwarf a disgust, sad and fear emotion. Or seeing 1 enemy corpse could give a disgust, happy, anger emotion, etc. It would make for dwarves that on a micro level will very quickly become nearly indistinguishable from normal humans.
Conclusion
Personally I really love the pilgrimage option. It gives DF so many more layers. The idea of looking at the dwarven pilgrims in my Fortress and thinking... Jep... I feel you man... self betterment is hard. But more importantly seeing a 'perpetual angry, cracks easily, childless'-Doran come back and overcoming the memories of her past is just... yeah... I would really love that.
I think the sanctuary option is the one most in line with the idea of adding new features and for beginners it is probably the best option. As a beginner you encounter your first tantrum and then find the sanitorium and think: Ah! That is what I need to build to solve this and you would be right. Or you have seen the sanitorium first and thought... Pfah, I dont need that. And then after the first tantrum-spiral you are like... Well, I guess I really needed that!!! Losing is fun and all that beautiful Miles Davis jazz...
Specific reason for leaving.
And finally why I am still leaving out of love, or an in depth answer to Threetoes question.
The main strength of Dwarf Fortress is the fact that it is an input randomisation driven game. Humans tend to hate output driven pure randomness, but we love input driven randomness.
It's like poker. You get a random set of cards and need to work with what you get, but you know what everything does. DF is even better in that regard: With the "prepare carefully embark" you get to stack the deck in your favour by getting to 'choose 2 kings' so in poker you always have at least 2 kings in your hand. Pretty neat, and very usefull because DF has a lot more input variables to take into account than poker.
Abstractly from a game design perspective Dwarf fortress however has even more in common with Magic the card game, than poker. This should easily be understood from even an intuitive level.
In Magic the gathering and other input randomized driven cardgames I have no problem tossing cards to the side and never look at them again. This card is so bad that it willl simply never make it. Toss it, and done. The earlier you do this, the better. The later, the worse. The theory is sound&easy.
But we aren't talking about tossing cards away here. We are talking about dwarves. Dwarves that live, eat and feel in my mind. When I watch Kruggsmash I can see him love (some of) his dwarves and I do to. To me they are like little tiny wonder machines. I don't expel or atomsmash unfeeling playing cards here, I have to expel or atomsmash dwarves.
I feel disgusted with myself every new migrant wave: You are... cheerful, that's good. Doesn't like authority and is conflicted for many reasons, well, not good-good but we can work with that. Cracks easily under pressure. Ah you are one of those ones. The cracks easily ones. Can't have those around here. We do not take kindly to your kind here. Expelled.
The worst decision I had to make was a "cracks easily" of the "quick to anger"-type. Easy decision right? Both cracks and anger means violent tantrums in the future. Expel! But as I clicked expel, the game stated that this one had a child in the fort and I had to check.
The daugther was cheerful, helpful and most importantly she handled stress very well (confident under pressure) and was also new. In my mind I immediately saw her as the rock that her mother relied on. They hadn't come to my fortress because of the mother, it was the child that had carried them here. To this fort where stress was taken seriously. That safe haven where there were no stressed out dwarves. The fort that they would finally find the peace the daughter so wanted for her mother. She was the adult in this mother-daughter relationship, she was the one that always made sure that her mother was cared for. She took all that motherly abuse on the chin and remained cheerful in spite of all the tantrumming, violence and stress her mother put her through. The child had learned early in life, that she could never rely on her mother, had taken up that role and made the wise decision to come to an Armok that cared... And I... I expelled them both.
It took me five minutes to click the expel button, but I did it. It made me feel as disgusted with myself as I ever have been playing this 'solution,' but I did it. Because I needed to know if this expelling/atomsmashing stress-supremacy solution would work. And it did. I had my first FPS death fort. "Rejoice!"
So now, you would say I could finally save Doren right? I learned my lesson and the 'losing is fun'-cycle can start by reloading the old Doren fort right? No.
Doren is a "cracks easily, constant state of anger, childless bugged"-type. She didn't just lose the DNA-randomisation lottery, she fell down the tree and hit every branch on the way down. I have tried everything, but the memories come back to haunt her and undo everything I did everytime. I now know why she is unsaveable. I need to go back and atomsmash her. It's the only way. And I cannot do it. I will not do it. This game is looking me straight in the eye and taunts me to do it and I am saying no. I refuse. Sometimes the only way to "win" a game, is to not play it.
That is a high level concept, so let me explain:
In "Wargames" (a movie) an AI named Joshua learns by playing tic-tac-toe that the only way to win, is to not play. That way world war 3 does not get started and everyone gets saved. In my case it just saves Doren, but the principle stands. Dwarf Fortress is teaching me this lesson on a much deeper and more profound social level and I am grateful for it.
The fact that Dwarf Fortress can make me feel digusted with myself by expelling dwarves based on the dwarven DNA-lottery and makes actively me reject that I do that, teaches me one of the most profound lessons in life. It is a testamount to both it's depth and it's undisputed and rightful place as art.
@Threetoes: You asked why n00bs like myself stop playing the game and this is my answer: Because your game teaches me to stop playing and I am deeply grateful for that lesson. I look around in the world today, and I believe that this is one of the more profound lessons that many of us have forgotten or never learned. Sometimes the only way to "win" is not to play. Thank you for this experience.
For those that have read this far, I thank you. I will check back one last time next week to answer any questions the community has, because you guys are awesome. I wish you all and the game nothing but the best and IF the stress problem gets other more humane ways of dealing with it, (or someone actually has turned a "cracks easily, constant state of anger, childless bugged"-type back to a semblance of functionality) I will be back. Until that time, farewell,
Julian