Enjoyment variation (probably not feasible)

I didn’t take your statement as hyperbole, I extended it ad absurdum.

My point was that most people probably don’t have a favourite food consisting of a single ingredient regardless of how it is prepared. I like chicken, but it’s not my favourite food. Some of my favourite foods involve chicken, however. If your character’s favourite food was flour… that would be weird.
I think that implementing a favourite food system based on ingredients would be fairly unrealistic, although an exception could probably be made for a favourite fruit (Fuck yeah grapes).

Flour being a favorite would just make you a fan of breads, pastas, pastries and cakes of all kinds. Well, that, and uncooked dough.

On average, at least, if one has an ingredient you really don’t like, they’d counteract each other.

Someone having chicken as a favorite doesn’t sound odd, I know someone who’s like that for fish, and I myself haven’t encountered a well-cooked octopi dish that I haven’t loved.


The per-ingredient idea does run into the problem that it doesn’t match the category-based preferences people often have. Someone could like most kinds of pancakes, but be ambivalent about anything else that has the same ingredients; someone could love ice creams, or pizzas, or could hate soups or beans in general.

I mean, people also have single-dish favorites, but this is often in conjunction with liking or disliking broad categories as well, just not as strongly.


A decay of ‘how much you like this’ based on the last time eaten doesn’t cover binges, it’s often that a bar of chocolate is fine, but devouring a whole lot of it is even better.

Unless you barf, or you keep doing it for like a week, and then you cannot look at them without feeling nauseous for years later.


So, how do we glue things together?

  • Some foods would have a ‘category’ flag, like soup, beans, and the like.
  • two tables would be generated at start, one for categories, one for edible items. The table would have colums for:
    • base preference: over time, the character will trend towards this value, over time, it may slowly shift (barring flags)
    • how many times it was eaten 2 days ago
    • how many times it was eaten yesterday
    • how many times it has been eaten today
    • flags: flags would alter the ‘normal’ behavior.
  • The base system would be that how much you enjoy the item would be based on: how much you enjoy that type of item (category), how much you like the item in particular (the table’s base preference entry), and how much you like the ingredients. This would then be reduced if you’ve been eating too much of it over the last three days, and return back to normal after giving it a rest.

Flags would then make this interesting. For example, a food could be the best thing evah for you, and no matter how much you eat it, you’ll never grow tired.
Or you ate something until you barfed, or you just overbinged on it for days, and now it has the flag nauseous, tanking any enjoyment you’d get of it, making it more likely to make you barf, and only vanishing months, or even years later.
Or, randomly, you could be craving some item or another, sending you messages from time to time about it, and upping your enjoyment of it when you finally eat it. This might even progress into best thing ever.

For sanity’s sake, some items, like, say, water, would be ignored by parts of the system or the whole of it. I’d be kinda unplayable if you grew sick of drinking water, after all. This could be done by item flags.

I like it! Though I think you might also track how much Nutrition that particular food has supplied you total over the course of the game, and then compare that to the total amounts of nutrition needed over the course of a month, and use that percentage to figure out some things. Perhaps each month subtract that percentage from the count…there’s a number of potential mathematical permutations that could emulate whether you’ve been constantly eating this one thing for the last three years, etc.

Something could also get the Nauseous flag if you tried to eat while sick and ended up puking it up. I once tried to calm my stomach down with a glass of ginger masala chai, ended up puking rather severely (flu, it turned out) and couldn’t even smell the stuff for months without gagging.

Maybe foods in certain categories could start with the Novelty flag, until you’ve tried it at least once.

This might be getting… Slightly convoluted. At the very least as much so that there would be no way to express this to the player in an intuitive manner.

@kuros: Tho something along those lines could help balance out meals that are big per-serving vs meals that have a lot of smaller servings when found or cooked, tho I’m not sure if all meals will play nicely with this. Candies, for example, would certainly into the extreme end of low nutrition, so how will that play with the formula?

@Trigon: the communication with the player is something of an issue, I’ve thought of mainly two ways: the joy column when consuming things, and messages to the player.
When eating something, the usual eating message would vary, notifying you if you like it, if you dislike it, if you’re getting tired of it, or if it just satisfied a craving.
The player would also get notified if they’re starting to crave something. Wondering what X would taste like, or musing that it’s been ages since they ate Y.

Something of an issue would be not knowing how much you would like something before crafting it tho. Not sure how to communicate that other than messing with the crafting screen and making it use the modified joy formula.

Come to think of it, crafting would smell, and that could very well make you really want to eat what you’re making, or make you discover you really didn’t want it.

And yet another (:P) addable thing would be varying things using the player’s hunger. It is said hunger is the best seasoning, after all, so being half-starved would make almost anything delicious, but you’d grow progressively pickier the fuller you are.

–One of my problems with being too specific is that this could end up being incompatible very easily. Unless the new flags for various foods was mainstreamed, then it might end up completely broken/useless on most mods. They’d probably need a second mod - for those without this one - that actually includes those factors. Or at least some sort of addon to fix said errors.
–I much prefer a bit more randomness in it. Sure, it could end up super weird, but it could (potentially) be more compatible and various possibly easier to code in general. I also feel like there should be some sort of limit (a % amount) for how many foods change. Thus, not everything will be completely different from the base game. Since, as a general rule from what I’ve observed, some foods are simply more likely to enjoyed than others, and the same way with disliking them.
–The cravings idea might work on mods, but I really don’t know how that’d work. That’s not something I’ve really delved into thus far. Although I will say that I think that idea is pretty good.

Mods and maintenance were one of my main concerns when thinking up the system, so I understand where you’re coming from.

This is the reason why while the ‘food categories’ would use item flags, but everything else is dynamically generated. At best, unsupported mod items will ‘inherit’ a food category from an item they’ll be using ‘copy-from’, at worst, the item belongs to no food category, but will still be part of the individual and ingredient-based food preference formula.

The other tag that a mod would need would be something like “never tires”, so things like water don’t tire out the player. There shouldn’t be many things that require such a tag.

The “only % food change” may not be needed to get the desired effect: if the ‘likes’ are adjusted with a bell curve, then most items will be ‘average’, differing from the base joy in the json by only a few percent (tho still subject to the character getting tired of that item or craving it), with some breaking above or below the rest.


It might be a good idea to make items that are “consumable_type: DRINK” to be resistant to the player getting tired of them, since people are far more willing to drink something every day than to eat the same thing every day. Ditto for anything that is addictive, which is also easy enough to check.

Might also be a good idea to make items that are “consumable_type:MED” skip the modified joy system altogether. Many of those are pills, many others are injected.

I’m not aware of any meds that have an enjoyability rating. Though, again, I’m only familiar with the early game.

I’m really interested in the conversation about how we could make this theoretical mod maximally compatible with other mods that add food items.

a lot of meds do, keep in mind that meds include drugs and chewing gums (regular, tobacco and caffeinated), as well as gummy vitamins (positive enjoyability) and mugwort oil (negative enjoyability).

Maximum compatibility would come from relying as much as possible on dynamically generating things based on attributes already there on the jsons, Consumable type (med, drink, food) and addictiveness are the ones that look promising to me.

–You may have misunderstood me about what I mean by percents. I mean that a percent of all food in the game (including mods) will change, but the rest won’t. For example, you could have it so 80% of the food ingame changes, but the other 20% aren’t randomized; they have the default enjoyment stats.
–I could be wrong, and I just misunderstood what you said. Which would make me feel like a derp, but then again, I’m a derp all the time.

No, no, I understood what you meant, what I mean to say is that most food wouldn’t change much.

Say, you have something with Joy of 20, and most items fall on the -20%~+20% personal enjoyment scale:
On most playthroughs (and barring cravings or being sick of that food), you’d see it have a joy of 18~22, with some rare times going down to 16 or as high as 24. Once in a blue moon, however, you might see it jump all the way up to 40, or down to -10~-15.

So on average, most foods would be pretty close to their base joy, a small group would be noticeably above or below, and a handful few would hit the extremes, so in practice, the effect would be close to your suggestion of only randomizing a small number of foods.

I prefer randomizing all and using a bell curve over randomizing a few but ensuring it’s extreme enough to be noticeable by the player because the system is already going to need a table for all the foods, in order to track flags and how much the character has been eating that food lately.

I would prefer to start out with a much simpler system and add more features if it’s meaningful to do(in order of impact and ease of implimentation)

  1. Random scaling of enjoyment for each morale source per character, I agree a normal distribution of adjustments sounds like a good idea.
  2. Layer on a system for adjusting enjoyability based on past exposure. Most likely a simple system like, “if you eat the same thing too much your enjoyment starts to drop”.
  3. Possibly tweak the above system based on initial preferences, perhaps favorite foods are tolerated for longer.
  4. Apply random tweaks to enjoyability based on characteristics of foods, such as ingredients.

I also feel like if a character has a trait relating to not eating a certain food, the mood debuff and such will be greatly increased. It makes sense that you wouldn’t enjoy eating a food that will probably make you throw up.

I’d agree with you if the traits were simply aversions. A vegetarian wouldn’t be happy eating meat because they made a choice not to eat meat.

But they deal with these things as ‘intolerances’. I know plenty of lactose intolerant folks who still love cheese and icecream. I also know about a dozen people with shellfish allergies that love crab. My sister’s allergic to pineapples and she still likes the taste. Sure, nobody likes throwing up, but plenty of people are still happy to eat things their bodies don’t agree with.

–Hmm. I guess you do have a good point there. Didn’t think about that. Of course, I’d never do that, because I understand when my tummy says I should no longer eat something. My tongue and my brain often don’t agree with each other, but my tummy and my brain do. Sometimes, it is like my stomach is a wise counselor in the topic of food, and almost always helps me to eat a good diet.
–Remember kids, you can trust a skinny chef! Because they love food soooo much they only eat the really good stuff, and thus they are skinnier! Really, you should trust a skinny chef more than a fat one, because the fat ones just shove a bunch of junk down their throats!
–You know what? Now I want to add the ‘skinny chef’ trait to ROA, which is better than that other food trait that starts with a ‘g’! The amount of food you need to eat is significantly lowered, but you are still able to eat more. The cooking skill also levels up twice as fast, and any and all food you eat tastes amazing! It’s not perfectly accurate to how I described the skinny chef easier, but VIDEO GAME LOGIC!

All the mathematical permutation stuff sounds really neat, but I agree with Kevin that the system should be as simple as possible to start out with. Personally, I think the craving system would be really neat, but I also get that it would be a bit weird.

I think it’s also important to differentiate “preferences” and “favourites”. Obviously some people lean more or less towards different types of food, but the lean is going to be fairly weak. Some people like pasta more than others, some people like red meat more than others, etc. The categorical approach isn’t bad, but it should provide a fairly low morale bonus, since it’s pretty unlikely that pasta is going to be someone’s absolute favourite thing. It’s far more likely that a person’s favourite dish is going to be fairly specific, a specific type of noodle, sauce, and meat, cooking in a particular way. THAT would be the thing that should give a substantial morale bonus when eaten, and I think it would be a lot easier to implement.

My issue with randomly generated preferences is that it would be the very first per-character benefit/penalty that’s randomly generated as the only option. You can always make your character exactly the same every playthrough, and you have full control over every meaningful decision. The likes/dislikes would have to show up during character creation and be re-rollable at minimum, preferably also being kept with character templates.

Skinny chefs cook for the tongue, fat chefs cook for the soul.

1 Like

Hmm. Fair enough about the chef thing there. You’re probably right about that part. I hearted your comment for just that little bit :grin:

It’s always bothered me that people put so much effort into making food taste “incredible” when you taste it for like 15 seconds and then it’s on it’s way to being poop. I’m far more concerned with good tasting food that’s satisfying.

1 Like

If you’re just looking for a proof of concept, rather than a complex system, why not implement a favoritism system for the food types that already exist in game?

IE: You already have fruit, vegetable, dairy, meat, and junkfood intolerant characters. Therefore many foods (or all? I don’t know) are already tagged to fit into those categories.

So, wouldn’t you start with those 5 archetypes of food and work from there?

Well I mean each bite only lasts a few seconds but the whole meal can last a lot longer than that so you end up with a lot more than 15 seconds of enjoyment.