Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  

Author Topic: Food/booze prefs influenced by civ sites, biomes and personality  (Read 1002 times)

Khym Chanur

  • Bay Watcher
    • View Profile

As far as I can tell, the manner in which each dwarf's preferences for food and booze are chosen is completely random.  I've seen a number of dwarfs who prefer to consume various ocean fish, even though dwarfs aren't known for their coastal cities, and there's frequently dwarfs who like to drink booze made from surface crops.

To make things somewhat less random, I was thinking that at embark time each possible food/booze be procedurally given an "exoticness" rating based on the civilization entity (dwarf/human/etc) you're embarking with.  For example, embarking with a dwarven civ, the combination of DEFAULT_SITE_TYPE:CAVE_DETAILED and LIKES_SITE:CAVE_DETAILED would make underground crops and booze from underground crops extremely non-exotic.  After that the START_BIOME:MOUNTAIN and BIOME_SUPPORT:MOUNTAIN:3 would make mountain creatures like mountain goats and hoary marmots only a tiny bit exotic for a meat source.  Next up in exoticness would come creatures and crops from forest, grassland, savanna, shrub land and river biomes, since those have a BIOME_SUPPORT level of 1.  And at the top of exoticness would be creatures and crops from deserts, oceans, tundras and so on.  The exoticness ratings could further be refined on a per-civilization basis, so that if The Torches of Meeting is close to the ocean then ocean fish become less exotic for them, and if the The lance of Sacrifices is close to the tropics then elephant meat becomes less exotic.

Other things that would effect exoticness:
  • COMMON_DOMESTIC animals would be have low exoticness, non-domestic but PET animals would be more exotic, PET_EXOTIC animals would be yet more exotic, and completely untamable yet more.
  • Carnivores would have a higher exoticness rating than omnivores or herbivores.
  • Larger population numbers would be less exotic, and small population numbers more exotic.
  • Creatures only found in evil or savage biomes would be more exotic.
  • Subterranean creatures and plants found at deeper cavern depths would be more exotic.
  • Plants with no seeds would be more exotic, since they can't be farmed.
Okay, then, onto the dwarfs. Each dwarf would be given a composite/pseudo "likes exotic food/booze" personality trait based on other personality traits, so (for example) a dwarf with a liberalism of 0 ("Is an ardent believer in convention and traditional society") would have a very low "likes exotic" trait.  This would be used to weight the random selection of preferences, so a dwarf with a "likes exotic" of 0 would be more likely to prefer quarry bush leaves and dwarven wine, while one with "likes exotic" of 100 would be more likely to prefer sunshine and ice wolf meat.

Since the result of this, on average, would be more dwarfs whose food/booze preferences are easier to fulfill, the game would need to tone done how much of a boost to happiness dwarfs would get from eating/drinking their preferred food/booze.  One idea would be to keep a per-dwarf counter of the amount of time since the dwarf last consumed something s/he preferred, so if s/he had recently consumed preferred food/booze it would only give a slight happiness boost.
Logged

sockless

  • Bay Watcher
    • View Profile
Re: Food/booze prefs influenced by civ sites, biomes and personality
« Reply #1 on: April 11, 2011, 12:04:38 am »

I seem to remember reading somewhere that carnivores don't make very good meat though, but I can't remember where.

Also, instead of using just the tags, new ones could be made, or maybe it could also be based on global counts of animals, since we already have those, so some critically endangered animal would be really tasty as compared to a common one.

In fact, animal value and tastiness should be based on these factors, and then prefs should be some common food. Because how is a dwarf meant to like something they have never tasted?
Logged
Iv seen people who haven't had a redheaded person in their family for quite a while, and then out of nowhere two out of three of their children have red hair.
What color was the mailman's hair?

NW_Kohaku

  • Bay Watcher
  • [ETHIC:SCIENCE_FOR_FUN: REQUIRED]
    • View Profile
Re: Food/booze prefs influenced by civ sites, biomes and personality
« Reply #2 on: April 11, 2011, 11:23:57 am »

"I don't know what slade is, nor does anyone in my whole civ, and I've never even heard the term before, but I hereby mandate you build some crafts from it!"

"Why don't we give him some shiny rock, and just CALL it slade?  How would he know?"


Anyway, this is an entirely sensible idea.

I think part of the problem is that dwarves are just *created* when you are embarking, or have the first couple migration waves.  They aren't pulled from some existing pool that could have some sanity checks that say "How can you love cave dragon meat if nobody's ever killed one and eaten it before?!". 

Putting in some sort of civilizaton-based food source, plus a few possible exotic trade foods for a little good measure, you could probably just make dwarves only choose from the pool of things that their civilization has actually known at some point, which would eliminate the really silly things.

I seem to remember reading somewhere that carnivores don't make very good meat though, but I can't remember where.

Also, instead of using just the tags, new ones could be made, or maybe it could also be based on global counts of animals, since we already have those, so some critically endangered animal would be really tasty as compared to a common one.

In fact, animal value and tastiness should be based on these factors, and then prefs should be some common food. Because how is a dwarf meant to like something they have never tasted?

Carnivores are:
A) Hard to raise in large numbers - rather than eating the crops you grow on the land, you grow grass to feed the cows.  Then, rather than eating the cows, you feed the cows to another animal for several years, which requires more cows, and hence, more land.

B) Lean and tightly muscular - they fight for a living, and often go hungry.  They are just plain tough, and I mean that in the "their meat is tough" sort of way.  Cows have tender meat because cows just stand in one place chewing their cud all day.  They've been selectively bred for centuries to be calm, sluggish, and basically just be a stomach with legs.
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

Silverionmox

  • Bay Watcher
    • View Profile
Re: Food/booze prefs influenced by civ sites, biomes and personality
« Reply #3 on: April 11, 2011, 03:08:50 pm »

The carnivores that do make good domestic animals either provide their own food (cats), or aid in acquiring more food (dogs), and/or are able to live on offal or other bits and creatures that weren't fit for human consumption anyway.

Taste is not really the problem: we do eat carnivores like tuna for example. Note that these are hunted when grown, not bred.

Carnivores like mink are sometimes bred for more durable products like their fur, rather than their meat. Not in the economic era of DF, though.
Logged
Dwarf Fortress cured my savescumming.

harborpirate

  • Bay Watcher
  • cancels eat: job item lost or destroyed.
    • View Profile
Re: Food/booze prefs influenced by civ sites, biomes and personality
« Reply #4 on: April 11, 2011, 03:19:43 pm »

Toady brought up in one of the DF talks that the current method where likes and dislikes are decided at birth/creation makes no sense. I think he mentioned that ideally dwarves should encounter something and THEN decide if they like it, which would resolve some of the problem. Embark party and NPC character creation would have to use some set of rules like those in the OP to get realistic likes and dislikes.

So that's a long winded way of saying I support this suggestion.
Logged