Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  
Pages: 1 [2]

Author Topic: Change food preferences based on experience  (Read 4047 times)

Starver

  • Bay Watcher
    • View Profile
Re: Change food preferences based on experience
« Reply #15 on: August 02, 2017, 05:11:31 am »

Thread diversions aside, my simple (simple? moi?) version would take the original "small chance of increased preference" idea (getting dwarves used to available foodstuffs, or less detesting them if originally averse?) as used in an incremental manner, and partner it with a parallel tally of consecutive encounters with an ingredient that (starting very low) multiplies or possibly even exponents a chance of moving in the disfavour direction.

A varied diet keeps resetting (or halving?) any "Boring! We always eat this! Yuk!" possibility, whilst non-consecutive recurring of available produce still gives the adaptive preferences towards the local fortress fare. Thus no getting comfortably plump solely upon plump helmets, not just cramming the clams, and you're encouraged to have at least two different milkable animals1, just to avoid the possibility of stagnation.

There's very few forts that are forced to be single food-stuff, and I intend it to be a very shallow slippery slope into ultimate despair and global anorexia...


1 Also a decision on whether sheep's milk in a meal supports or not a good-count/bad-count shared with sheep's milk cheese. Or any particular meat buffs the less (but still) significant "generic meat" value, continuous vegetarianism/veganism changes attitudes a smidgen for every meal...  In fact, could "Not another masterful roast! What should I do to get a plain biscuit?" be a thing?
Logged

NW_Kohaku

  • Bay Watcher
  • [ETHIC:SCIENCE_FOR_FUN: REQUIRED]
    • View Profile
Re: Change food preferences based on experience
« Reply #16 on: August 02, 2017, 04:19:24 pm »

Thread diversions aside, my simple (simple? moi?) version would take the original "small chance of increased preference" idea (getting dwarves used to available foodstuffs, or less detesting them if originally averse?) as used in an incremental manner, and partner it with a parallel tally of consecutive encounters with an ingredient that (starting very low) multiplies or possibly even exponents a chance of moving in the disfavour direction.

A varied diet keeps resetting (or halving?) any "Boring! We always eat this! Yuk!" possibility, whilst non-consecutive recurring of available produce still gives the adaptive preferences towards the local fortress fare. Thus no getting comfortably plump solely upon plump helmets, not just cramming the clams, and you're encouraged to have at least two different milkable animals1, just to avoid the possibility of stagnation.

There's very few forts that are forced to be single food-stuff, and I intend it to be a very shallow slippery slope into ultimate despair and global anorexia...


1 Also a decision on whether sheep's milk in a meal supports or not a good-count/bad-count shared with sheep's milk cheese. Or any particular meat buffs the less (but still) significant "generic meat" value, continuous vegetarianism/veganism changes attitudes a smidgen for every meal...  In fact, could "Not another masterful roast! What should I do to get a plain biscuit?" be a thing?

If we're talking about keeping things simple, then I should point out that dwarves disliking anything but a hated vermin is also a significant step up in complexity.  You're talking about having a running tally of every food a dwarf has ever eaten, and making up a score for whether they liked or hated it, which is a major expansion in complexity, even before we start talking about whether sheep cheese is like sheep milk or sheep liver is like sheep tallow. 

The only thing I think exists currently is a "last thing eaten" marker and a "how many times in a row eaten" tally.  It, again, exists exclusively to prevent single-food forts, but still allows for two-food forts to exist without problem. Also, I don't think it starts counting at all if you have masterful roasts with two or more foods, so if you feed your entire fortress with goose eggs AND turkey eggs, nobody will ever get tired of either.
Logged
Personally, I like [DF] because after climbing the damned learning cliff, I'm too elitist to consider not liking it.
"And no Frankenstein-esque body part stitching?"
"Not yet"

Improved Farming
Class Warfare

Starver

  • Bay Watcher
    • View Profile
Re: Change food preferences based on experience
« Reply #17 on: August 02, 2017, 05:04:53 pm »

Datawise, it's 'just' a list the size of the Food stockpile (and maybe the grouping levels, and maybe some alternate grouping levels) tagged onto the current panoply of person/personality data. I have no illusion that it's going to be a single bit setting, or even a word of data.

OTOH, it also seems to be as complex as the Relationships component, in a large fort (added to pre-existing off-fort, pre-immigration information) and I suspect (not having checked) that that's a dynamic list to which each new meeting (or site arrival) is added only once it drifts away from "utterly neutral in feeling", because only then is it worthwhile. Do the same for foodstuffs.

Code: [Select]
OnEat(Food):
  // Insert existing mood-changing for any relevant pre-existing preferences here //
  If Food.cooked == false then
    List=(Food)
  Else
    List=Food.ingredients
  For each Ingredient in List do
    FadList=Ingredient.deconstruction // exact item, family of item, item provenance, etc.
    For each OldFadable in dwarf.diet do
      If OldFadable existsIn FadList then
        dwarf.diet.OldFadable+=1  // Or 1 for "vegetable", 2 for "plant leaf", 2 for "spinach item",
                                   // 4 for "spinach leaf", etc, from a master list of specificity of current classification
        FadList.remove.OldFadable
      Else
        dwarf.diet.OldFadable.delete 
    For each NewFadable in FadList
      dwarf.diet.NewFadable=1

  // And now run through the reconstructed dwarf.diet list
  // Chance to buff dwarf.likes based on (unenumerated) existence of item in list
  // And a chance to retard dwarf.likes based upon the magnitude of all items in the list

Entirely "I have no idea how the internal code and data works", but demonstrative, psedocodiously.

As for data used, per dwarf there would be up to five 'exact ingredients' (then maybe fifteen or twenty more 'group level' classifications) after each meal of a particularly diversely constructed roast. Not much to store.  Or, if we go with "halve all those values not in the last derived FadList, then it could be more "legacy items", especially previously much binged ones. But you still excise them once the half (rounded down) becomes zero.

On the other beard, the dwarf.likes array might easily now get out of hand if you don't keep the chances of additional desires/dislikes low enough to not spam them all over the culinary shop.

(And/or you could always "rust" preferences to keep the data slimlined. Could even show up, as "She remembers liking Desert Scorpion Liver, but it has been so long..." that being part of the prelude to eventually nixing the preference through passage of time, or (by chance, or the player noticing and caring and both willing and able to arrange a 'special treat') a mood-boost that also resets the nostalgic expectation.  Ditto, if anti-preferences are used, you can end up reminding them that they never really liked spinach leaves. But that's probably accidental, rather than deliberate...  For most players!)

Simpler in the basic implementation than in explanation, of course. And how much 'tuning' needs to be done to the buff/retard/rust processes, I wouldn't know, but that's part of the fun of testing!

(Also, just a wild, 'out there' suggestion, to indicate what I'd try. And what I'd probably then discover is impractical, either through adding nothing to the game or adding too much!  But I can ponder, and so I have. And will do again, no doubt.)
« Last Edit: August 02, 2017, 05:20:48 pm by Starver »
Logged

NW_Kohaku

  • Bay Watcher
  • [ETHIC:SCIENCE_FOR_FUN: REQUIRED]
    • View Profile
Re: Change food preferences based on experience
« Reply #18 on: August 03, 2017, 12:54:30 am »

Datawise, it's 'just' a list the size of the Food stockpile (and maybe the grouping levels, and maybe some alternate grouping levels) tagged onto the current panoply of person/personality data. I have no illusion that it's going to be a single bit setting, or even a word of data.

TBH, I think that altering mikekchar's idea of just making a random chance of gaining a new favorite and having a similar chance to add a new hated food would accomplish much the same thing without creating either yet another giant list of data the player will never see or care about, or else flooding the player with yet more useless raw data.

The relationships page is rather cluttered as it is, especially in larger forts, but there are literally several hundred different types of food that each dwarf will have a new relationship with.  And yes, it's technically within the capacity of data storage to just shove one more table with hundreds of individual food preference data points for each of a hundred dwarves (god forbid this gets used on every random historical figure, as well, the save bloat would be horrific...), but... what problem is this solving, again?

Having a disfavored food is a decent idea, but I think the fact that food (and all other) preferences being just pure blindly random was implemented for a reason, being that it's at least simple both for coding and player purposes and prevents any one-size-fits-all solution to all food needs. 

Again, I'm hardly one to talk when it comes to make the backend complex, but the frontend needs to have a fairly obvious set of consequences that guide player behavior.

And really, I think that's the basic that needs to be addressed first and foremost: What is the player supposed to do about all this?

For example, the problem I see with the current system is that you generally have no reason to ever bother trying to get specific types of foods into your fortress.  You either have the food a dwarf likes by blind luck, or you don't.  It's fortunately not mandatory (like mandates for preferred stones or the like) but it's also something the reward output for effort spent caring about it is trivial.  The "Flavor-based" solution I was trying to go for meant that players would be told there's X number of flavors, and players need to try to find some way to satisfy the need for every flavor in order to satisfy all their dwarves, making it reasonably feasible to satisfy all dwarves... but at the same time, you could then make the penalties for not having anything salty more severe than just not having a moderate happy thought.

If you want to keep things super-simple, then even just breaking things down into obvious categories (Urist like fish, Morul likes bird meat, Asmel likes grazing animal meat, Lisid likes tree fruits) and maybe have one hated category to match, you have something fairly simple, both coding-wise and player-wise. 
Logged
Personally, I like [DF] because after climbing the damned learning cliff, I'm too elitist to consider not liking it.
"And no Frankenstein-esque body part stitching?"
"Not yet"

Improved Farming
Class Warfare

SixOfSpades

  • Bay Watcher
  • likes flesh balls for their calming roundness
    • View Profile
Re: Change food preferences based on experience
« Reply #19 on: August 03, 2017, 03:50:56 am »

Well, you've pretty much adopted my suggestion as the first rebuttal to my problem with the previous suggestion.
Well . . . yeah. I read your idea, agreed with it, and expanded on it. I wasn't aware that there was anything wrong with that.

Quote
If you have a two-favorites system, though, I have to wonder why you'd bother hunting for a "true favorite" when you already have a "good enough favorite"?  I mean, it doesn't really solve the problem that there's literally no way to be sure what that secret favorite is other than to perform the almost certainly impossible task of trying to have EVERY FOOD IN THE GAME . . . If the solution to it is to make a second, easier target, why have the impossible-except-by-blind-luck target at all?
Who said that discovering a (hidden) favorite food was important at all, let alone necessary? This was intended simply to mimic realistic behavior: People have favorites chosen from what they've already experienced, and rarely they fall in love with something they hadn't tried before. Just because their super-duper secret favorite might be totally unattainable (say, a Pan Galactic Gargle Blaster) does not in any way mean that they will be unhappy with brandy and tequila. There is no "almost certainly impossible task," no "impossible-except-by-blind-luck-target" that the player is in any way pressured to find. Indeed, if there's any "hunting for a true favorite" going on, it's performed by the dwarf, not the player: I expect more food-oriented dwarves would be more self-motivated to experiment with unfamiliar foods & ingredients.

The system I proposed would hardly have players bending over backwards to micromanage hundreds of different foodstuffs, or burden them with walls of data. The only visible change would be that, instead of two highly specific foods, dwarves would be seen to like 2 or 3 general tastes (and maybe dislike 1-2 others), and then 3-5 specific foods / drinks that fit that taste pattern. The player is NOT obliged to obtain the specific foods, merely to satisfy their general tastes; I expect that these needs could be met by cultivating no more than 8-12 different foodstuffs, which is really what most realistic forts should be going for anyway if they're trying to approximate a balanced diet. Nobles and other important dwarves, however, might still demand their specific favorites, but that's their prerogative--and since those favorites are based on what they've already consumed (and/or is native to the Mountainhome, for migrants), those foods should be obtainable.
If anything, all this change would do is a) encourage a healthy variety of crops / livestock, and b) make it easier to satisfy nobles' food demands.

Quote
You need to start out with asking what you actually want to get players to do, and build your rules around incentivizing that kind of behavior. . . Asking players to have, say, 3-5 types of meat/seafood, at least one type of egg and/or one type of milk, and 6-18 varieties of vegetables, herbs, and spices in general would be a reasonable goal, in my estimation.
As I said, we are basically in agreement.


How many suggestions have very limited scope?  From what I can see, none of them.  Every time someone makes a suggestion, the thread is inundated with, "No, what we should really do is completely redesign the way it works from the ground up".
Just because I went off on a tangent doesn't mean I didn't like your original idea--far from it. It's just that food is a BIG subject, in need of a BIG overhaul, and making a little suggestion simply isn't going to paint a terribly satisfying idea for a Final Result. I mean, heck, the food system is so involved it could quite easily require THREE separate updates: One for a rebalanced agriculture system, another for real recipes in prepared food, and one for dwarven tastes/appetites. And everyone's got ideas on how each one of those should be changed. Side-suggestions are only to be expected.
Logged
Dwarf Fortress -- kind of like Minecraft, but for people who hate themselves.

NW_Kohaku

  • Bay Watcher
  • [ETHIC:SCIENCE_FOR_FUN: REQUIRED]
    • View Profile
Re: Change food preferences based on experience
« Reply #20 on: August 03, 2017, 03:03:17 pm »

Well . . . yeah. I read your idea, agreed with it, and expanded on it. I wasn't aware that there was anything wrong with that.
Well, I was a bit confused by your statements, because
Actually, no, for two reasons.
sounds a lot more like disagreement than agreement.

Who said that discovering a (hidden) favorite food was important at all, let alone necessary?

But that goes back to my original problem with the system: If it's not important, almost never happens, and the player would probably not even be looking to discover when it even DID happen... why are we bothering? 

Again, I have to go back to the eyelashes problem.  When Toady first announced eyelashes would be included in the game, there were people thrilled it was there because "Dwarf Fotress was just that advanced!", but it turned out eyelashes were bugged, and not only would never stop growing, but were growing at too fast a rate and actually taking up processor time constantly updating their over-long eyelashes (which could grow several feet long, but didn't actually matter because they didn't interact with anything, anyway).  It was only because Quietust goes through memory hacks that the problem was ever found or addressed...  Because nobody actually cared about eyelashes, they were a non-issue in the game, and people just liked having some complex-sounding THING being in the game abstractly, even if it had no material consequence.

What does adding in the chance for a moment where a dwarf suddenly discovers they love something, but the player will probably never know, really add to the game?  At best, it's a story moment, but I suspect it would annoy more people than it would interest to have every time a new visitor suddenly declare that your goose egg biscuit is the BEST THING THEY EVER ATE! (After all, it's rare for a player to actually expand the number of foods they have access to, so most "hits" of favorite foods will be the things you have all the time, and would be discoveries made by new migrants or children.)  If you're not announcing it to the player, however, how would they ever know?

It becomes a "not even wrong" problem - especially if we're talking about trying to mitigate time Toady spends on things, why are we asking him to spend time programming something you're explicitly going out of your way defending by saying nobody will care about it even if it's there?  What value is added by this system?

The tracking of the number of times they've eaten the last thing they've eaten in a row is there to stop players from making one-food forts.  A flavor system like I'm proposing pushes this up to requiring players have at least a marginal variety of foods so that purely egg-based forts built around two forms of fowl (or goose eggs + goose meat being just one animal) aren't viable.  Mikekchar's OP random change idea at least partially solves the obvious problem of dwarves being born only loving meat from extinct animals. Making a system where dwarves can like or hate either a whole category of things or several different things can again encourage variety. 

This leaves the "encourage a variety of foods" aspect, but to do that, you have to make it actually matter mechanically if you find a "hit", and that requires you actually make it important by either rewarding hits or punishing misses.  This is, again, why I favor a categorical or "flavor" system, since by making sure that every fortress should have at least some reasonable expectation of being able to supply something from every flavor profile or food category (whose category definitions can be shaped specifically to ensure it encourages the desired behavior), you can set up a reward/punishment schedule that has significant ramifications if players fail to ensure every category/flavor is covered, in much the same way that tantruming dwarves will ensure that nobody makes a single-food fort again.  Further, since we can control the arbitrary number of food categories or flavors, and what it takes to satisfy them, we can precisely dictate the

(I should also point out that there are a variety of "Nutrition" suggestions floating out there which accomplish the same thing, and work on basically the same principles as the flavor profile, with some arbitrary number of nutrition variables being satisfied to different degrees by different categories of food.  I.E. calories/fat being best met with grains or fat/tallow; protein met by meat, eggs, fish, or beans; Vitamin C met by citrus, etc.  While it adds some degree of realism on a conceptual level, its net effect is to just demand players have specific categories of food, so it's basically the same thing that demands category-based food.)
« Last Edit: August 03, 2017, 03:05:16 pm by NW_Kohaku »
Logged
Personally, I like [DF] because after climbing the damned learning cliff, I'm too elitist to consider not liking it.
"And no Frankenstein-esque body part stitching?"
"Not yet"

Improved Farming
Class Warfare

SixOfSpades

  • Bay Watcher
  • likes flesh balls for their calming roundness
    • View Profile
Re: Change food preferences based on experience
« Reply #21 on: August 08, 2017, 02:44:47 am »

Well, I was a bit confused by your statements, because
Actually, no, for two reasons.
sounds a lot more like disagreement than agreement.
To be precise, I was proposing a mechanic by which the "flavors" system (which we both seem to like) could possibly be implemented. The part where I disagreed with you was when you thought that I was trying to strongarm players into (somehow) obtaining every single foodstuff in the game.

Quote
But that goes back to my original problem with the system: If it's not important, almost never happens, and the player would probably not even be looking to discover when it even DID happen... why are we bothering?
For the same reason that preferred foods already exist. Nobody needs food preferences, forts & individual dwarves would run just fine without them. But, every once in a while, we pick a special dwarf. Maybe it's a weaponsmith who just cranked out an artifact adamantine pick. Maybe it's the Axelord who singlehandedly beat back a goblin siege. Maybe it's a child whose parents were killed in front of her. Maybe it's the all-too-rare noble with actually good skills & traits, and useful preferences. Maybe it's a crippled veteran, burned and maimed, with no eyes and only half a hand, whose sole remaining pleasure in this world is the kind of soup his father used to make. And for those players who want to do something kind for those dwarves, it'd be nice to have the ability to do so.
 
Quote
. . . if we're talking about trying to mitigate time Toady spends on things, why are we asking him to spend time programming something you're explicitly going out of your way defending by saying nobody will care about it even if it's there?  What value is added by this system?
I'm not saying "nobody will care about it," I'm saying "nobody will have to care about it" . . . but we should at least have the option of caring. Under the current system, being able to meet a food preference is entirely hit or miss--and because it's mostly miss, ("Why the hell did you migrate to a fort built on a glacier if you liked ostrich meat, dumbass?!?") most players ignore it as a generally unattainable goal. But if dwarves can be pleased by things that taste similar to a preferred food, and/or they have a "favorite so far" food which is pretty much guaranteed to be available, then gourmet dining suddenly becomes a viable option.

Quote
. . . there are a variety of "Nutrition" suggestions floating out there . . . with some arbitrary number of nutrition variables being satisfied to different degrees by different categories of food.  I.E. calories/fat being best met with grains or fat/tallow; protein met by meat, eggs, fish, or beans; Vitamin C met by citrus, etc.  While it adds some degree of realism on a conceptual level, its net effect is to just demand players have specific categories of food, so it's basically the same thing that demands category-based food.
In an ideal DF, both systems would be used: every ingredient would have a flavor profile AND nutrition specs. The player would try to provide foods that support a balanced diet, while the dwarves would try to choose foods that fit their individual palate. (Should dwarves even need Vitamin D?)
Logged
Dwarf Fortress -- kind of like Minecraft, but for people who hate themselves.

NW_Kohaku

  • Bay Watcher
  • [ETHIC:SCIENCE_FOR_FUN: REQUIRED]
    • View Profile
Re: Change food preferences based on experience
« Reply #22 on: August 11, 2017, 10:55:09 pm »

For the same reason that preferred foods already exist. Nobody needs food preferences, forts & individual dwarves would run just fine without them. But, every once in a while, we pick a special dwarf. Maybe it's a weaponsmith who just cranked out an artifact adamantine pick. Maybe it's the Axelord who singlehandedly beat back a goblin siege. Maybe it's a child whose parents were killed in front of her. Maybe it's the all-too-rare noble with actually good skills & traits, and useful preferences. Maybe it's a crippled veteran, burned and maimed, with no eyes and only half a hand, whose sole remaining pleasure in this world is the kind of soup his father used to make. And for those players who want to do something kind for those dwarves, it'd be nice to have the ability to do so.

The thing is, though, preferences do have mechanical reasons to exist outside of raw player sentimentality.

Preferences heavily guide moods.  Preferences are what determines mandates, and are therefore critically important on nobles.  Preferences give serious happy thoughts if fulfilled.  If someone has a preference for something like doors, I'm much more likely to give them masonry, because they'll be giving themselves happy thoughts constantly admiring their own work. 

Food preferences aren't used in most of those systems, but exist for the same reason as those other systems. 

In fact, originally, they were meant to be mandatory, but they were nerfed because it made the game grossly unfair to have unmeetable needs.  They were dropped down to near-irrelevance as a system as a fast kludge solution to the problem, but you're supposed to always fulfill them.  (Which is why the suggestions are to find ways that preferences can at least hypothetically be satisfied at some point.)

Dismissing it as purely fluff is missing a large part of the point of the system, and I think that if the system is made more possible to be regularly fulfilled, it can also be brought back up to reasonable levels of importance again.
 
I'm not saying "nobody will care about it," I'm saying "nobody will have to care about it" . . . but we should at least have the option of caring. Under the current system, being able to meet a food preference is entirely hit or miss--and because it's mostly miss, ("Why the hell did you migrate to a fort built on a glacier if you liked ostrich meat, dumbass?!?") most players ignore it as a generally unattainable goal. But if dwarves can be pleased by things that taste similar to a preferred food, and/or they have a "favorite so far" food which is pretty much guaranteed to be available, then gourmet dining suddenly becomes a viable option.

The problem with the argument you make at the start of that paragraph is that you rebut it in the next sentence.  If it's something you don't have to care about, "but have the option of caring about", but then it's based upon things completely out of your control and are often a "miss", anyway, then caring about it is pointless, now isn't it? There's no point in caring about an "actual favorite" if you already get the best you can get from a "favorite so far", so why bother even having a "secret true favorite" at all, if you can just cut out the middle man and set up a system that finds "favorites so far", and leave the rest behind? 

Unless it actually leads to real player interactions and actual player decisions and choices somewhere (or at least, interesting stories that players can watch play out), it's not worth doing.  It would be one thing if players could have a choice between getting a caravan that gets one rare food from among four or five other rare foods, and then have to choose which dwarves you bring their favorite foods and get a happy thought for, but in the current game, there's no reason not to buy out everything of any value in a caravan, and you're making the true favorites hidden, so the player couldn't even make an informed choice, anyway.  (You wouldn't even know whether those rare foods were favorites of anyone at all until after you had them.) From a player perspective, this just exacerbates the problems with a "hit or miss - and mostly miss when it's completely not your fault" system.

In an ideal DF, both systems would be used: every ingredient would have a flavor profile AND nutrition specs. The player would try to provide foods that support a balanced diet, while the dwarves would try to choose foods that fit their individual palate. (Should dwarves even need Vitamin D?)

Vitamin D is obtainable through milk and some vegetables, by the way. 

Anyway, I'd be cautious about considering that "ideal".  After all, unless you're going to institute a system whereby the player actively controls what's on the menu (which is opening up a whole new can of worms, and can make it even harder to satisfy preferences if you have to remember to constantly change what's being cooked...), then the player only really interacts with this system (outside of its results) through what foods are available, which is, as already gone over, oftentimes not really within the player's control. (At least, not mid-game.)

It's again something similar to the eyelashes system: You have to ask what actual gameplay value is being created for the player/how it impacts the decisions the player will make for the amount of complexity you're adding.  Not just for Toady's coding time, or the fact that it can introduce bugs, but also for the players, themselves, who now have another large table of data to track with little intuitive way to understand how to actually fulfill the goal of feeding your dwarves a balanced diet of purely organic kale salads with cranberries to satisfy their fiber and vitamin C needs.

Or, put more simply, it's adding a lot of complexity both for the player and the game, and it would take some real work to integrate both and make them actually add any depth that could possibly justify all that added complexity.
« Last Edit: August 12, 2017, 02:41:16 pm by NW_Kohaku »
Logged
Personally, I like [DF] because after climbing the damned learning cliff, I'm too elitist to consider not liking it.
"And no Frankenstein-esque body part stitching?"
"Not yet"

Improved Farming
Class Warfare

SixOfSpades

  • Bay Watcher
  • likes flesh balls for their calming roundness
    • View Profile
Re: Change food preferences based on experience
« Reply #23 on: August 17, 2017, 02:49:34 am »

[Food preferences] were meant to be mandatory, but they were nerfed because it made the game grossly unfair to have unmeetable needs.  They were dropped down to near-irrelevance as a system as a fast kludge solution to the problem, but you're supposed to always fulfill them.  . . . Dismissing it as purely fluff is missing a large part of the point of the system, and I think that if the system is made more possible to be regularly fulfilled, it can also be brought back up to reasonable levels of importance again.
Dismissing the current handling of food preferences as fluff is far from missing the point, if one understands the reason why it was effectively dropped from the game--which I do. Dismissing it as fluff is also perfectly acceptable if one suggests ways in which its meaning can be safely re-introduced--which I also do. The dynamic that I suggested (hidden "true" favorites, which will probably not be attainable, and visible "favorites-so-far", which almost certainly are attainable) is a nod to the old/current system of "hit-or-miss" specific food items, and maintains consistency with the other existing preferences, which are similarly highly selective.
In contrast, the whole "flavor / nutrition" dynamic is a sharp break from the other preferences, and is a direction in which I both hope and expect the game will eventually go . . . and take the other preferences with it. A dwarf that likes "rose gold" is nice, but I think a dwarf that likes "copper and its alloys" is nicer. Similarly, dwarves that show a marked preference for sweet foods, or smooth liquors, or meaty flavors, etc., is just more realistic, not to mention being far easier to satisfy.
 
Quote
The problem with the argument you make at the start of that paragraph is that you rebut it in the next sentence.
Hardly. I'm simply illustrating that, under my suggested system, individual preferences can safely be ignored, as long as you plan out a food supply that hits all the nutritional requirements and flavor types (which any good overseer should be trying to do anyway), but it also leaves the door open for catering to the selective whims of a specific dwarf, should you ever be so inclined. That's complexity, not contradiction.

Quote
There's no point in caring about an "actual favorite" if you already get the best you can get from a "favorite so far", so why bother even having a "secret true favorite" at all?
That's a good point. I guess the "secret true favorite" might be handled similarly to the "favorite so far", but with an additional happiness boost that's proportional to the time elapsed since it was last consumed. Just as humans frequently convince themselves that goods that are rare/imported/illegal (e.g., Cuban cigars, or the meat of endangered animals) are inherently better than more easily available versions of the same things, dwarves could use their beard senses (which already tells them that more expensive food is inherently yummier) to get more pleasure out of preferred foods which they know are more exotic, and therefore luxurious & decadent.

Quote
In an ideal DF, both systems would be used: every ingredient would have a flavor profile AND nutrition specs. The player would try to provide foods that support a balanced diet, while the dwarves would try to choose foods that fit their individual palate.
I'd be cautious about considering that "ideal".  After all, unless you're going to institute a system whereby the player actively controls what's on the menu, then the player only really interacts with this system through what foods are available, which is, as already gone over, oftentimes not really within the player's control.
But not having complete control over local growing conditions is sheer realism, one of the cornerstones of DF. Seriously, as long as the player ensures a healthy stock of at least 1 of each of [starch, protein, milk product, fruit, vegetable], and maybe salt as an electrolyte/preservative, that should satisfy most of the nutritional requirements, and any noticeable vitamin deficiency should take years to become noticeable. That could be the "baseline" embark, that covers all the basics, and anything beyond that is just (almost literally) gravy--exactly as it should be, when pioneering a new fort in the wilderness. Menu diversity is greatly desired, but not strictly required. Dwarves shouldn't really expect to have good food, or even a good cook, until they're established enough to get a greater variety of foods & seeds through trade.

Quote
You have to ask what actual gameplay value is being created for the player/how it impacts the decisions the player will make for the amount of complexity you're adding.  Not just for Toady's coding time, or the fact that it can introduce bugs, but also for the players, themselves, who now have another large table of data to track with little intuitive way to understand how to actually fulfill the goal of feeding your dwarves a balanced diet of purely organic kale salads with cranberries to satisfy their fiber and vitamin C needs.
That's very true. On the one hand, it should be common sense that when you want to found a successful colony, you DON'T send your dudes out with nothing but Cheetos and Pepsi, you give them the tools to build a balanced diet. But on the other hand, you can't expect players to know the nutritional makeup of imaginary underground plants ("I guess rope reeds are high in fiber, but do quarry bushes have more minerals?"), and even some of the real-life plants (muskmelons? 4 types of amaranth?) are largely unfamiliar, so yes, a clunky table of data would unfortunately be almost unavoidable. But, back on the first hand again, this is DF, where clunky tables of data are practically a given, no matter what you're trying to do.
Logged
Dwarf Fortress -- kind of like Minecraft, but for people who hate themselves.

NW_Kohaku

  • Bay Watcher
  • [ETHIC:SCIENCE_FOR_FUN: REQUIRED]
    • View Profile
Re: Change food preferences based on experience
« Reply #24 on: August 18, 2017, 04:02:59 am »

Dismissing the current handling of food preferences as fluff is far from missing the point, if one understands the reason why it was effectively dropped from the game--which I do. Dismissing it as fluff is also perfectly acceptable if one suggests ways in which its meaning can be safely re-introduced--which I also do.

Actually, I was arguing for food preferences to be re-introduced, and you argued against that when you said:

Quote
If you have a two-favorites system, though, I have to wonder why you'd bother hunting for a "true favorite" when you already have a "good enough favorite"?  I mean, it doesn't really solve the problem that there's literally no way to be sure what that secret favorite is other than to perform the almost certainly impossible task of trying to have EVERY FOOD IN THE GAME . . . If the solution to it is to make a second, easier target, why have the impossible-except-by-blind-luck target at all?
Who said that discovering a (hidden) favorite food was important at all, let alone necessary?
Quote
But that goes back to my original problem with the system: If it's not important, almost never happens, and the player would probably not even be looking to discover when it even DID happen... why are we bothering?
For the same reason that preferred foods already exist. Nobody needs food preferences, forts & individual dwarves would run just fine without them. But, every once in a while, we pick a special dwarf. Maybe it's a weaponsmith who just cranked out an artifact adamantine pick. Maybe it's the Axelord who singlehandedly beat back a goblin siege. Maybe it's a child whose parents were killed in front of her. Maybe it's the all-too-rare noble with actually good skills & traits, and useful preferences. Maybe it's a crippled veteran, burned and maimed, with no eyes and only half a hand, whose sole remaining pleasure in this world is the kind of soup his father used to make. And for those players who want to do something kind for those dwarves, it'd be nice to have the ability to do so.

You are explicitly arguing that food preferences aren't and shouldn't be needed, so suddenly saying that your argument is that food preferences are supposed to be necessary is giving me some whiplash.

The dynamic that I suggested (hidden "true" favorites, which will probably not be attainable, and visible "favorites-so-far", which almost certainly are attainable) is a nod to the old/current system of "hit-or-miss" specific food items, and maintains consistency with the other existing preferences, which are similarly highly selective.
In contrast, the whole "flavor / nutrition" dynamic is a sharp break from the other preferences, and is a direction in which I both hope and expect the game will eventually go . . . and take the other preferences with it. A dwarf that likes "rose gold" is nice, but I think a dwarf that likes "copper and its alloys" is nicer. Similarly, dwarves that show a marked preference for sweet foods, or smooth liquors, or meaty flavors, etc., is just more realistic, not to mention being far easier to satisfy.

These are two mutually exclusive systems.   Which one are you actually backing?
 
Quote
The problem with the argument you make at the start of that paragraph is that you rebut it in the next sentence.
Hardly. I'm simply illustrating that, under my suggested system, individual preferences can safely be ignored, as long as you plan out a food supply that hits all the nutritional requirements and flavor types (which any good overseer should be trying to do anyway), but it also leaves the door open for catering to the selective whims of a specific dwarf, should you ever be so inclined. That's complexity, not contradiction.

But you just said that you were suggesting that individual preferences shouldn't be safe to ignore.  That's definitely contradiction!

But not having complete control over local growing conditions is sheer realism, one of the cornerstones of DF. Seriously, as long as the player ensures a healthy stock of at least 1 of each of [starch, protein, milk product, fruit, vegetable], and maybe salt as an electrolyte/preservative, that should satisfy most of the nutritional requirements, and any noticeable vitamin deficiency should take years to become noticeable. That could be the "baseline" embark, that covers all the basics, and anything beyond that is just (almost literally) gravy--exactly as it should be, when pioneering a new fort in the wilderness. Menu diversity is greatly desired, but not strictly required. Dwarves shouldn't really expect to have good food, or even a good cook, until they're established enough to get a greater variety of foods & seeds through trade.

This is objectively NOT how food in Dwarf Fortress works. 

Case in point, my last fortress straddled biomes that were temperate and tropical, so I managed to get nearly every surface vegetable with seeds growing, building up a giant stockpile of extremely varied foods. 

What did my cooks actually prepare? 

Eggs. 

One roast of turkey eggs, goose eggs, more turkey eggs, and guinea fowl eggs, one roast of goose eggs, goose eggs, turkey eggs, and goose eggs, one of turkey eggs, turkey meat, turkey tallow, and goose eggs, and another roast of goose eggs, guinea fowl eggs, goose eggs, and capers. 

This is because the farms were west of the food stockpile, while the bird nests, butcher, and kitchen were south of the food stockpile, so the bird eggs and meat were placed closer to the kitchen, and therefore, as long as I had eggs, they were always the highest possible priority for cooking.

Dwarf Fortress AI does not decide to randomly pick up one of any kind of object that satisfies the parameters of what it is looking for, it goes for the closest object that satisfies the search parameters.  Without having the capacity to explicitly declare kitchens are to have varied foods, they will not have varied foods, and the preferences are even harder to fulfill because it basically mandates players constantly babysit their food stockpiles individually forbidding foods they don't want constantly in every single roast.  (And that most definitely is even MORE fine-tuned micromanagement than DF should strive for or is realistic.)

This is especially true if you have a flavor-based system with a "mead hall" style of setting up different kitchen workshops to keep specific types of food available.  If you're going to demand that players keep different types of flavors available, the player needs to have some sane way of actually telling their cooks to make those flavors available. 

Quote
You have to ask what actual gameplay value is being created for the player/how it impacts the decisions the player will make for the amount of complexity you're adding.  Not just for Toady's coding time, or the fact that it can introduce bugs, but also for the players, themselves, who now have another large table of data to track with little intuitive way to understand how to actually fulfill the goal of feeding your dwarves a balanced diet of purely organic kale salads with cranberries to satisfy their fiber and vitamin C needs.
That's very true. On the one hand, it should be common sense that when you want to found a successful colony, you DON'T send your dudes out with nothing but Cheetos and Pepsi, you give them the tools to build a balanced diet. But on the other hand, you can't expect players to know the nutritional makeup of imaginary underground plants ("I guess rope reeds are high in fiber, but do quarry bushes have more minerals?"), and even some of the real-life plants (muskmelons? 4 types of amaranth?) are largely unfamiliar, so yes, a clunky table of data would unfortunately be almost unavoidable. But, back on the first hand again, this is DF, where clunky tables of data are practically a given, no matter what you're trying to do.

Setting what you are arguing for aside for a second to focus upon the argument itself, saying, "it's Dwarf Fortress, so it's fine not to worry about making it an unintelligible mess," is a dodge that can (and all-too-often is) used to excuse nearly anything, and it absolutely isn't what players should be suggesting.  We SHOULD be suggesting systems to repair the grievous problems caused by invisibility of information, and how many of the major systems Toady spends a great deal of time upon are completely taken for granted because players simply don't bother to spend the time looking for the traces of information that would show they exist.  This is, again, why I keep bringing up the eyelashes problem: you negate any benefit your suggestion might have when nobody is capable of seeing it, or if it is visible, but too complex, willing to read through it.

(This is, incidentally, why I always use Therapist, and oppose people claiming some sort of "hard core cred" for just ignoring dwarf preferences and personalities and just putting jobs in a nickname and ignoring dwarf individuality entirely...  It's ignoring a major, vital piece of the game that needs to be developed more, not glibly ignored, and the interface directly opposes everything Toady is trying to accomplish.)

Beyond that, though, nutrition absolutely brings up the problems I mentioned above regarding "all omelettes all the time" fortresses.  If you want to make that happen, you have to start with devising the interface by which players will be able to be able to understand what they need to accomplish, and then give clear orders to the cooks to actually accomplish those objectives, rather than just say "it'd be nice if there was a nutrition system".  Because just saying that dwarves need to eat at least one citrus fruit each month to prevent scurvy is going to be a disaster if players have no way of getting dwarves to actually eat those citrus fruit, and they eat nothing but tallow roasts all day every day. 
Logged
Personally, I like [DF] because after climbing the damned learning cliff, I'm too elitist to consider not liking it.
"And no Frankenstein-esque body part stitching?"
"Not yet"

Improved Farming
Class Warfare

SixOfSpades

  • Bay Watcher
  • likes flesh balls for their calming roundness
    • View Profile
Re: Change food preferences based on experience
« Reply #25 on: August 19, 2017, 04:20:36 pm »

Okay, there's way too much miscommunication flying around to let this go any further. Let me restate/clarify all of my suggestions in one place.

I want the old, specific food preferences to be made meaningful again, combined with the new, flavor-profile style: "Urist enjoys crunchy, sharp, and bitter flavors, particularly radishes and gutter cruor." Note that meaningful does not imply necessary: Yeah, if Urist has had a bad day, feeding him some nuts, beets, or asparagus for dinner will make him less inclined to grumble, and a few swigs of gutter cruor should put him in a noticeably better mood. But he would still be content going the rest of his life without his favorite beverage as long as he had regular access to other drinks he likes, and he could forego even those, for many months at a time, if he was kept sufficiently satisfied from other sources such as friends and hard work. There is also no pressure for him to realize that he actually likes parsnips even more than radishes--it's simply a nice bonus if he happens to do so.
I should also note that I'd like to see the happy thoughts from eating good food fall off rapidly, for food that was prepared more than 1 day before the dwarf eats it.

For what it's worth, I would also like to see this "general likes with specific favorites" expanded to other preferences, e.g. "Urist likes yellow and orange colors & gemstones, particularly citrine," or "Urist likes personal adornments, particularly earrings."

As far as the "egg abuse" you mentioned, I think we can safely assume that one of the most important updates that Toady intends to make to the food system will be realistic recipes: Roasts will be made primarily of meat, biscuits will chiefly consist of flour, the main constituents of salads will be leafy vegetables, burritos will be full of beans, etc. "Prepared meal"s will still exist, but will be a combination of a starch, a meat, and a vegetable (probably with a booze on the side)--thus ensuring that every dwarf who eats "prepared food [1]" will get a pretty balanced dinner. This will not solve everything: If the fort (or any particular dwarf within the fort) sticks to only a few ingredients, vitamin/mineral deficiencies can still occur, and of course dwarves should get annoyed at having to eat potatoes every single time. Micromanaging ingredients to ensure things like varied diets, eating what's in season, etc., could be made the purview of your Manager and/or increase with the skill of your top Cook. If somebody's suffering from a deficiency of some sort, that could be spotted by your chief medical dwarf/top Diagnostician.

As for
Quote
. . . Saying "it's Dwarf Fortress, so it's fine not to worry about making it an unintelligible mess," is a dodge that can (and all-too-often is) used to excuse nearly anything, and it absolutely isn't what players should be suggesting,
I only said that cumbersome tables of data would be inevitable, not that they should be unintelligible (or worse, hidden). The best place to store these tables would of course be on the wiki, but within the game itself would also be a menu, a sub-section of the Kitchen screen. Just as the existing Stone menu lists every type of stone, what uses it has, what it's an ore of, whether it's magma-safe, etc, the Ingredients menu could list every ingredient, what tastes it satisfies, what named dishes it can be used in, etc. (I don't think dwarves would really know about vitamins, players should have to go to the wiki for that.)

You seem to keep trying to turn this into a fight; I don't see a reason for one. For my part, I feel the setup I described above is anything but an eyelash problem: It provides benefits (dwarves can enjoy what they eat far more frequently) that are easily visible to the player ("Hey, they can bake muffins now!") without being too overwhelmingly complex to be useful (just have the cooks produce a wide variety of prepared dishes, and make sure every available ingredient gets used in something, & you should be good). It promotes realism both in the literal (bananas, dates, & spinach are high in potassium) and roleplaying ("Urist seems to have some kind of flu . . . I'll tell the hospital kitchen to make some chicken soup, maybe with onions") senses. It is, in brief, WAY more than me just saying "it'd be nice if there was a nutrition system".
« Last Edit: August 19, 2017, 04:28:04 pm by SixOfSpades »
Logged
Dwarf Fortress -- kind of like Minecraft, but for people who hate themselves.

mikekchar

  • Bay Watcher
    • View Profile
Re: Change food preferences based on experience
« Reply #26 on: August 22, 2017, 08:45:33 pm »

NW_Kohaku: A bit off topic, but you can encourage your cook to use varied foods.   What you need to do is to build feeder stockpiles around the kitchen.  There are 16 tiles that are immediately around the kitchen. I normally make 3 of them a booze stockpile, 3 a meat and fish stockpile, 3 a fruit/veg stockpile, 3 a "processed foods" stockpile (flour, pressed things, etc), 3 a seed/nut stockpile, and 1 an "extender" stockpile (fat and quarry bush leaves).  These stockpiles need to take from a main stockpile and give to the kitchen.  Sounds complicated (and it is), but you only have to do it once and it is macro-able.

The key is not to use containers.  Dwarfs seem to preferentially take from the same tile.  The idea is to have a single stack in each tile.  This is not possible with things that must be in containers (booze, flour and seeds), so for maximal diversity you can omit them.  In practice, though, I haven't found it to be particularly bad.  Anyway, when the dwarf comes to get their ingredient, they will take the closest thing, but since there is only a single stack in the tile, they will then be forced to choose randomly from the other 15 tiles (since they are standing in the kitchen).

It works very well.  Normally my lavish meals have at least 3 different ingredients.  The main downside is that because dwarfs will not move things from a stockpile that allows containers to a stockpile that doesn't allow containers, it means that your main stockpile must not allow containers.  As long as you are careful not to overstock food, this is not really a major problem.  If you assume an average stack size of 4, then each tile can supply a little under 3 dwarfs per month (You get 5 booze per plant and the dwarfs drink 2 per month, for a total of 2/5 plants per month; they eat 1 food per month: total 1.4 food per month per dwarf; 3 dwarfs means 4.2 food per month, or pretty nearly 1 tile of storage).  I normally do the same thing with the still, so that means I have 32 storage around the kitchen and still, which is just under 1 month of food storage for a fortress of 100.  An additional 10x10 storage space  is enough for about 3 more months, even without any containers.

My currently favoured setup is a 10x11 room with the still, kitchen and surrounding stockpiles.  Then either above or below I have the main stockpile in another 10x11 room  The main stockpile is only accessible through a staircase in the kitchen/brewery.  I also place the kitchen/brewery in an out of the way place, with the main stockpile *away* from the centre of the fortress (pretty much opposite to what you might do naturally).  I put the prepared meal stockpile near the main traffic ways in the fortress.

This means that dwarfs rarely take raw ingredients from the main stockpile to eat (though they sometime take them from the kitchen/brewery).  Since the prepared food is "closer" when they get hungry, they go for that.
Logged
Pages: 1 [2]