CleverRaven / Cataclysm-DDA

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

Batch-crafting tea is faster than batch-crafting clean water #49362

Closed HeadsetRuler closed 3 years ago

HeadsetRuler commented 3 years ago

Describe the bug

Batch-crafting 50 herbal tea (or [pine needle/bee balm/spurge/chamomile] tea) takes FAR less time than batch-crafting 50 clean water (via the boiling recipe), despite the (IRL) crafting process being nearly identical.

Steps To Reproduce

  1. Batch-craft 50 clean water in ~5 hours
  2. Batch-craft 50 herbal tea in ~3 hours

Expected behavior

For the crafts to have similar batch scaling, considering they're almost completely the same process.

Screenshots

imageimage

Versions and configuration

Additional context

Seeing as this is fixable with just JSON I could do it myself, but I want to make sure this wasn't somehow intentional (and I find it proper to open an issue first)

natsirt721 commented 3 years ago

Probably not intentional. I have 0 evidence to back this but but I feel like batch boiling water takes too long. That being said, I'm usually doing other things when I'm waiting for water to boil IRL - I'd definitely get feedback from the core team seeing as how clean water by boiling is one of the most critical crafting recipes one can exercise.

Tamiore commented 3 years ago

Fundamentally, the much deeper core problem comes from the way just-wait-for-it-to-boil "crafting" is implemented. Logically speaking, it should take a minute (or so) to fill the pot (or whatever you cook in) with water and position it over the heat source. And then you should be free to do other stuff while the water boils. Exactly like smoking racks work for smoking food. At that point you can shift all down-the-line cooking to using clean water (hot), and give it 99% batch crafting discount where appropriate.

P.S. Now that I think about it, changing all "tea"-type recipes to require clean water (hot) and giving them 98% batch crafting discount is a probably a good idea even without any other changes to the code.

PatrikLundell commented 3 years ago

Until someone reworks crafting to include one or more idle periods (with failure timeouts if not resumed in time) we're stuck with having to look at paint drying and water heating up to boiling to finish the crafting processes.

When it comes to the original issue, I don't see any reason batch crafting tea should be faster. On the one hand, you only need to heat the water up to boiling before dropping the leaves (or whatever) into the water while you ought to boil water for at least a little time to ensure germs are killed off properly when treating water. On the other hand, tea should infuse for about 5 minutes (but you can do that to the whole batch at a time, if your container is large enough). Thus, equal time seems good enough from my perspective.

Changing tea making from one to two recipes in a sequence adds tedium and annoyance in my view, and it doesn't make sense if you make your tea from water that's already been treated (but has since cooled down).

Tamiore commented 3 years ago

Until someone reworks crafting to include one or more idle periods (with failure timeouts if not resumed in time) we're stuck with having to look at paint drying and water heating up to boiling to finish the crafting processes.

We already have fermentation as an example of "use X on Y and wait Z to get a product" type of crafting. Boiling water can be implemented in the same way without reworking crafting as a whole.

Changing tea making from one to two recipes in a sequence adds tedium and annoyance in my view, and it doesn't make sense if you make your tea from water that's already been treated (but has since cooled down).

You can (a)ctivate a pot to heat up clean water without using any crafting recipe. So if you already have clean water, if will not be "two recipes in a sequence".

PatrikLundell commented 3 years ago

Yes, we do have these recipes that produce a weird partial products that should sit for a while, but as far as I've seen there's no indication in these partial products of how long they have left before ready, and it doesn't seem like they actually enforce that waiting period at all (although I may be wrong). In addition to that, water boiling has the issue that you need to keep the fire going throughout the process to actually heat the water, while the passive phase processing only uses time (in as far as it actually does).

Heating up water to drinking temperature and then infusing it with leaves results in a bland lukewarm approximation of tea (like when trying to use a tea bag on water from a coffee warmer, which is what's on offer in many eateries).

Tamiore commented 3 years ago

Yes, we do have these recipes that produce a weird partial products that should sit for a while, but as far as I've seen there's no indication in these partial products of how long they have left before ready,

There is in some cases.

In addition to that, water boiling has the issue that you need to keep the fire going throughout the process to actually heat the water, while the passive phase processing only uses time (in as far as it actually does).

The current system is even more ridiculous. You can literally carry 50 units of 99% boiled water in your hands(!) without a container(!!), for one. And then, a week later, finish boiling it in a second.

Also, adding a "station" for boiling water is not required to make tea require clean water (hot) as a primary component. We can change the teas (to sort out batch crafting time shenanigans) and then add water boiling station later.

Heating up water to drinking temperature and then infusing it with leaves results in a bland lukewarm approximation of tea (like when trying to use a tea bag on water from a coffee warmer, which is what's on offer in many eateries).

Your point being..? You can heat up water all the way to (hot) via the same heating mechanic.

PatrikLundell commented 3 years ago

When the game heats food (which doesn't take any time?) it heats it to a temperature suitable for consumption, not for cooking. Heating it further to the boiling point should take longer than just to heat it to a drinking temperature.

Tamiore commented 3 years ago

When the game heats food (which doesn't take any time?)

It does.

it heats it to a temperature suitable for consumption, not for cooking. Heating it further to the boiling point should take longer than just to heat it to a drinking temperature.

And that's exactly how it works.

HeadsetRuler commented 3 years ago

As much as I appreciate this discussion, I was just trying to figure out if this was intentional (and fix it if it wasn't by making the tea recipes take the same time as the clean water recipe), not completely overhaul boiling as an in-game concept (which I assume would then be subject to the 0.F freeze)

natsirt721 commented 3 years ago

IIRC the current crafting system can't really handle item tags (including temperature) for ingredients so there is no way to require that the water ingredient for tea be hot (that might be totally incorrect). I think the best solution for now is to figure out which of the two times is the most verisimilitudinous and change the offending time to match. If anything tea should take slightly longer as you wait for the leaves to steep. Also, this remediation effort should include an audit of the other tea recipes and change them to be similar to whatever the tea time ends up being.

Also, the tea recipe requires 100 charges of heating tool for 50 batches, while the clean water recipe requires 150. This should probably be addressed as well.

HeadsetRuler commented 3 years ago

I think the best solution for now is to figure out which of the two times is the most verisimilitudinous and change the offending time to match.

Who wants to boil 12.5L of water at once IRL to test it out?

Also, the tea recipe requires 100 charges of heating tool for 50 batches, while the clean water recipe requires 150. This should probably be addressed as well.

Oh yeah, so it does. Didn't even spot that, but we should be able to fix that as well.

natsirt721 commented 3 years ago

I ran some numbers...

12.5 L water = 12.5 kg water room temperature = 20 °C, boiling point of water = 100 °C specific heat of water = 4182 J / (kg °C) energy to boil 12.5 kg of water = 4182 (100 - 20) * 12.5 = 4.2 MJ

This is raw energy delivered to the water, and does not account for heating of the boiling container and other thermal inefficiencies. We can see right away that the energy requirements for the electric heating devices is off by an order of magnitude (1 charge = 1 kJ). Surprisingly the chemical sources are much better - at 46 MJ / kg, 100 mL of gasoline has about 3.5 MJ of stored chemical energy, and would require only 120 charges to boil.

According to this source, an oil lamp (and presumably the lamp oil cooker and other small chemical heaters) produces 900 BTU / hr, or about 250 W. That would take about 4hr 40 minutes at full efficiency. This is almost spot on with the water boiling recipe. However, this is definitely a lowball for the electric sources. My electric kettle can bring 1 L water to a boil in about five minutes, giving it a power output somewhere around 1 kW. Modern electric stovetops produce between 1 and 3 kW, with some industrial cookers pushing 5 or 6 kW. A 2 kW electric burner could boil 12.5 L in about 45 minutes.

Again, all of this assumes that 100% of the input energy is going into the water, and does not take into consideration energy loss during boiling due to convection with the air or other sources, or the relative efficiencies of each step of energy transfer.

Takeaways

Recommendations

Further Ideas Eventually, I would advocate for separating the clean water recipe into two recipes, one for electrical heaters and one for chemical heaters. The electrical one would consume considerable amounts of electric power but would be significantly faster. The chemical one would remain more-or-less unchanged from its current state, sans electrical options.

chrispikula commented 3 years ago

@natsirt721

Further Ideas Eventually, I would advocate for separating the clean water recipe into two recipes, one for electrical heaters and one for chemical heaters. The electrical one would consume considerable amounts of electric power but would be significantly faster. The chemical one would remain more-or-less unchanged from its current state, sans electrical options.

The microwave actually being usable would be nifty, as an optional tool for boiling water.