CleverRaven / Cataclysm-DDA

Cataclysm - Dark Days Ahead. A turn-based survival game set in a post-apocalyptic world.
http://cataclysmdda.org
Other
10.65k stars 4.18k forks source link

Sourdough too efficient compared to other breads? #59390

Closed baldamundo closed 1 year ago

baldamundo commented 2 years ago

Describe the bug

Just had a long discussion on the Discord about how best to use flour, and realised that Sourdough is much more energy efficient than other types of bread, and I'm wondering if this is a mistake.

The maths can get a bit confusing, given different possible ingredients and possible confusion in the interface between total calories vs calories per portion, but I've tested the following in-game with flour made from wheat:

wheat flour = 33 kcal per portion

wastebread (chitin powder) = 3 portions x 20 kcal per portion / 1 flour = 60 kcal per flour (higher with other ingredients) flatbread = 2 portions x 234 kcal per portion / 11 flour = 42.5 kcal per flour hardtack = 1 portion x 266 kcal / 6 flour = 44.3 kcal per flour bread = 10 portions x 89 kcal per portion / 20 flour = 44.5 kcal per flour crackers (vegetable cooking oil) = 8 portions x 303 kcal per portion / 30 flour = 80.8 kcal per flour (higher with other ingredients) sourdough = 10 portions x 174 kcal per portion / 10 flour = 174 kcal per flour

Steps to reproduce

Debug spawn yourself a load of wheat and cooking tools, cook it yourself, and check my maths.

Expected behavior

I'm not a baker or a nutritionist, so perhaps I'm missing something about how effective the process of making sourdough is, but to a layman, it seems very surprising that the same ingredients (wheat flour and water) generate an extra 300% of the calories when made into sourdough compared to normal bread. It's even almost a 100% increase compared to crackers, which also add fats and sugar - both obviously high calory ingredients!

And certainly from a game balance perspective, it seems like there's almost never any reason to make bread over sourdough. Their other properties are pretty much identical, and while sourdough starters take a little while to mature, they're very easy to craft and only need more flour and water rather than a third ingredient like yeast.

Screenshots

No response

Versions and configuration

Build: 2022-07-09-1715

Additional context

This seems to have come up before:

I think the issue might be confusion over the fact that there is a "charges" [portions] line in the files defining the items (which is used by default), as well as a "charges" line in the files defining the recipes, which if not left blank, will be used instead of the line in the item files. The sourdough recipe doesn't have its "charges" defined, so it uses the value from the item file - when the charges were increased in that file to rebalance item drops, it thus buffed the sourdough recipe without affecting the other recipes.

So my guess is that there needs to be '"charges": 3,' added to like line 8778 of recipe_food.json https://github.com/CleverRaven/Cataclysm-DDA/blob/85de01c4c2cd7cc8db808014d64e90d1138078c9/data/json/recipes/recipe_food.json#L8778

(with 3 portions per batch, sourdough would have 52.2 kcal per flour, which would make it slightly better than normal bread)

Qrox commented 2 years ago

Sourdough bread has the "NUTRIENT_OVERRIDE" flag which should be removed so its nutrient can be tracked by its ingredients, though it may need some extra handling because the crafting process involves item transformation. The recipe charge may still need to be adjusted to ensure conservation of mass though.

PatrikLundell commented 2 years ago

No expertise on the matter, but, as @Qrox said, ingredients tracking should take care of the bulk of the resulting calories. There ought to be something that took cooking (making calories and nutrients more easily available) into account (which I don't think exists currently), but otherwise the difference between using sourdough and yeast should be time to rise and the calorie input from the sourdough/yeast. I don't know if yeast provides any noticeable amounts of calories, but since sourdough consists of some amount of dough, it ought to provide a corresponding amount of calories. Calories per unit of flour is only a valid comparison if all the ingredients are equal, so additional calories from e.g. sugar and cooking oil would have to be deducted. Adding low calorie fillers (mud in the extreme case, used in famine stricken areas today, bark from history) should result in a larger volume with a lower calorie count per "unit", but with a total calorie count based in the inputs.

Qrox commented 2 years ago

something that took cooking (making calories and nutrients more easily available) into account

There's the RAW flag which reduces uncooked food nutrient by 25%.

PatrikLundell commented 2 years ago

Crude, but better than nothing.

baldamundo commented 2 years ago

Calories per unit of flour is only a valid comparison if all the ingredients are equal, so additional calories from e.g. sugar and cooking oil would have to be deducted.

Yeah but the point is the only relevant ingredient is flour. Water has no calories, and the sourdough starter is also made from flour and water, but you get another one back as a byproduct, so it presumably can't be providing any net calories anyway.

So the calories per flour provides a useful comparison baseline - if the thing made from only flour is getting more calories per unit of flour than the thing made from flour combined with several other high calorie ingredients, then something looks a bit odd.

github-actions[bot] commented 1 year ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. Please do not bump or comment on this issue unless you are actively working on it. Stale issues, and stale issues that are closed are still considered.