The Wiki for Tale 4 is in read-only mode and is available for archival and reference purposes only. Please visit the current Tale 11 Wiki in the meantime.

If you have any issues with this Wiki, please post in #wiki-editing on Discord or contact Brad in-game.

Difference between revisions of "Guilds/Coastal Plains/Cooking/Theory"

From A Tale in the Desert
Jump to navigationJump to search
Line 185: Line 185:
  
 
== Tests ==
 
== Tests ==
 +
 +
[[Image:TestData.png]]
 +
 +
We've included Serpentfish because a bad location has been floating around.
 +
Wheat, with various roasts, is a new ingredient.
 +
We're accumulating test results on the [[Guilds/Coastal Plains/Cooking/Tests | Tests page]], and you're more than welcome to contribute additional data.
 +
 +
Simply being organized is a major advantage when you are testing a lot of recipes.
 +
 +
The best approach is to set up your test plan ahead of time, you don't necessarily need to test everything if you're getting good results.
 +
Assign an identity to each test. The identity doesn't really matter, it just allows you to sort the data in various orders and autofilter to selectively look at test results.
 +
Easy Wiki Tables explains how to transfer bulk information from a spreadsheet to the wiki.
 +
Save your native mode *.xls file before you SaveAs with the *.cvs extension, which only saves the current tab.
 +
Carefully correct headers that include a nextline character. You may want to insert a break instead. <br> is the html code for a break.
 +
Replace the comma in Wheat (Dried, Raw).
 +
When you type an ingredient into the Additive or Base fields, the spreadsheet will fetch the ingredient type from the Contributions Tab. This is mostly to verify your spelling, but it also allows you to sort the test data in Chest sequence.
 +
 +
The Tests Tab has the following columns:
 +
{| border="1"
 +
! Column !! Description
 +
Additive
 +
(always 1) Only one Additive is used in this series of 1:6 tests
 +
Ta The type of the additive allows you to sort your test data to match the chest sequence. The main purpose of the lookup, however, is verification that the tested ingredient is spelled correctly, and is included in the database.
 +
Potency This is a calculated value. Potency = (Duration-Bulk) * (Na+Nb)/Na Proportion
 +
Bulk This is also a calculated value, using the same formula. You should try to pair an additive with the most effective available base, if you can, as the recipe will then:
 +
* Provide better Stats granularity
 +
* Verify that the Bulk values are still the same, and that you can therefore trust the test data.
 +
Base 1:6 then
 +
1:13 if needed Each line of test data implies two related tests:
 +
* 1:6 Additive:Base
 +
* 1:13 Additive:Base
 +
Tb Verification that the Base exists.
 +
1:6 The calculated Duration, in total seconds, reported by the first test.
 +
1:13 The calculated Duration, in total seconds, reported by the second test.
 +
7m User entered minutes from the Critical Evaluation of the first test.
 +
Add 60 if the duration is more than an hour.
 +
7s User entered seconds from the Critical Evaluation of the first test
 +
14m User entered minutes from the Critical Evaluation of the first test
 +
14s User entered seconds from the Critical Evaluation of the first test
 +
Tester Who did the testing
 +
GameDate When was the testing done

Revision as of 10:04, 10 January 2009

Back to cooking

Information from Tale 3:

Consider a Glazed Doughnut

In the middle of the Glazed Doughnut there's a hole that contributes nothing, but if the hole gets too large, you won't have a doughnut any more.

The Doughnut provides most of the bulk, and a bit of the flavor.

The Glazing provides most of the flavor, and a bit of the bulk.

Cooking works that way too!

  • The radius of each base "doughnut" is always exactly 1000 seconds of duration (16.6 minutes).
  • The distance between a Base and an Additive (measured in seconds of duration), determines the size of the hole.
    • The size of the base "doughnut" that's left, after you remove the hole, provides most of the bulk and a bit of the potency.
  • The flavor of each additive "glaze" provides most of the potency and a bit of the bulk.

Servings

Your cooking skill level determines the number of Bases that you can use in a recipe, one Base per cooking level. If the number of bases in a recipe exceeds your cooking skill level, you will get muddled results. There are 7 ingredients per serving, and the general formula is Servings = (Na + Nb) modulo 7, where Na is the number of Additive Ingredients and Nb is the number of Base Ingredients. In a typical production recipe there will be one Additive Ingredient per Base, and 7s-1 of each Base ingredient where S is the total number of servings per Base. In other words, a level 5 cook might cook 5*(Na+34Nb)/7 servings, for a recipe with 5 different Additives each paired with an effective Base, which would yield 5*35/7=25 servings.

If your Gastronomy level is 7 or more, from eating Masterpiece Recipes, you will have a Critically Evaluate this Food menu on the kitchen, that will indicate the integer Duration (to the nearest second) and the integer Stats for that recipe.


Duration

The duration formulas, for a two ingredient recipe, are:

  • Duration = Additive Boost + Base Bulk
    • Additive Boost, or simply boost is a proportional part of the potency of the additive.
      • If the recipe is 1:6 Additive:Base, then the Additive Boost will be Additive Potency * 1/7.
      • If the recipe is 1:13 Additive:Base, then the Additive Boost will be Additive Potency * 1/14.
      • If you know the duration difference between two recipes that vary only by ratio, you can back out the effect of the Base Bulk, and thereby isolate a hypothetical value for pure potency, even though the value can never be directly measured.
      • Potency fluctuates inversely with usage and perhaps with inventory. Rare herbs are therefore more potent than common ingredients and, to preserve their potency, should only be used as additives. (Don't use Oyster Meat as a base.)
  • Boost = Potency * Na/(Na+Nb), where Na and Nb indicate the units of the same Additive and the same Base.
    • Na < Nb, as their relative amount is what determines their role in a recipe. (Only use Copper Pots.)
  • Bulk = Duration - Boost
  • Distance = 1000 - Bulk

If you use multiple different additives per base, and it's all determined based on distance whether you intended it that way or not, you'll kill your duration.

  • MultipleDiffAdditiveBulk = 1000/Ndiffa^2 - Distance/Ndiffa, where diff indicates different additives that are associated with a base.
    • If there is only one additive, the equation collapses to Bulk = 1000 - Distance.
    • The consequent durations are added together, so if the Additives are at about the same distance the equation collapses to Bulk = 1000/Na - Daverage, so you can't possibly increase your duration by using multiple different additive.
  • If you use more than one of a particular additive, it does increase the duration. If you use three units of a rare herb and 4 units of a seldom used base, you'd get nearly three times the duration, but only one serving.
    • Don't go there unless you are tuning a recipe to be a possible masterpiece. One unit of a rare herb is just as potent as three units of that same herb, and you wouldn't get poor nearly as fast if you made a huge recipe, say 1 additive and 104 of the base ingredient = 105/7 = 15 servings, and ate more often. At cooking level 5 you can easily get 80 minutes of duration with a single additive per base, and that's plenty of time for most activities.
    • Using multiples of rare herbs, even if you could afford it, would be a bad idea anyway as the potency of the herb would drop very rapidly, and you'd have ruined that herb for everybody.

Recipes will spoil after a few days. Each Pyramid of Renewal adds 2 days, Salt adds 2 days, and the recipe itself adds two days. That's a maximum of 18 days, but we're not there just yet.

Duration, which is just the Doughnut in actual practice, determines how long a recipe will effect your performance statistics.

Performance Stats

Each recipe also provides an overall performance decrease/neutral/increase in each stat. Although there are seven different stats they are independent of each other. The only variables that effect the statistics are:

  • The potency of the additive (important)
  • The potency * 1/9 of the base (trivial)
  • The characteristics of each ingredient, which are one of three multipliers (-1, 0, 1) for each stat.

Each ingredient provides a different combination of stats, so the Art of Cooking lies in selecting a combination of ingredients that will provide you with the desired performance, without killing your duration or your pocketbook.

  • Str = Strength (Safari: Debens of carry weight, mining, cement, grinding, pumping, coconuts)
  • Dex = Dexterity (Acrobatics: Debens of carry bulk, off-road velocity)
  • End = Endurance (Oyster Catcher: Flax processing, digging, pumping, cement)
  • Spd = Speed (Cicada: On-road velocity, fishing, beekeeping)
  • Con = Constitution(none: Smoking, toxin lab, chemistry lab)
  • Foc = Focus (none: Tooth limestone prospecting, carving, dowsing)
  • Per = Perception (Food, Wine, Beer, Fumeology: Tapping, gathering wood, dowsing, mining)
  • There's a complete listing at Stats.

Going back to our doughnut analogy, when you eat the doughnut the bulk and the glazing all get mushed together, and flavor, rather than size, becomes the important factor.

  • Stat = Sqrt(Sum( Potency/17.2 * Bulk/1000 )), where each stat for each Additive:Base pairing is considered separately.
    • Potency is scaled by a factor of 1/17.2 (The scaling factor might be a bit more or a bit less than 17.2, and Teppy may be messing with it to control game balance.)
      • If an ingredient is being used as a base, its potency is further scaled by a factor of 1/9. The square root of 1/9 is only 1/3, so this isn't as bad as it sounds.
    • Bulk is a characteristic of the pair. Bulk has no meaning for a single ingredient.
      • If bulk <= 0, you will get 0 as the Stat contribution, Teppy took away our negative duration feedback, but you may still get a positive duration if your Additives provide enough of a kick.
    • The contribution from each Additive:Base pair (we have to give up on our doughnut analogy at this point) is then separately multiplied by the characteristic (-1, 0, 1) of each Stat for each separate ingredient, and then the contributions are accumulated in a separate register for each Stat. That's the summation part.
      • Oyster Meat is unique in that it has a +2 multiplier for Endurance. Please don't ever use Oyster Meat as a base. It's far too valuable as an END Boost for Aqueduct Pumps, Clinker Vats, Barrel Grinders, etc, etc, etc, for it's potency to be killed by using it as a base. Sadly, the potency of Oyster Meat is already down to 1582, so we may have already lost this battle.
    • The sign of the accumulated contributions is retained, but only the signed square root of the magnitude is carried forward.
      • Rare herbs aren't as wonderful as they might seem. Herbs really take a hit when the signed square root is calculated.
      • Mushrooms and common herbs hold up quite nicely.
    • The square root of the accumulated contributions is then tinkered a bit.
      • Add 1.2 if the value is negative.
      • Add 0.5 if the value is positive and the ingredient is being used as a base.
      • Add 0.2 if the value is positive and the ingredient is being used as an additive.
      • Our testing technique, wherein we analyze a 1/14th portion of the hypothetical potency, and then multiply by 14, gives potencies that are in multiples of 14. That's OK for most purposes, but if you want to be precise, you'll need finer granularity.
    • Now truncate the stat values. Only the truncated value is retained, so a bite of the recipe will only have an integer effect on your stats.
  • If you are using multiple different additives per base (or if you screw up), the worst bulk is used for that base and every associated additive. Otherwise, the contribution of the base is tossed into the same discrete hoppers as everything else.
    • Multiple additives, however, will kill your duration.
  • Your current cooking level limits the number of bases that you can use. If you use more bases than your current level, everything becomes muddled.
  • Bases are defined as the set of ingredients that have the same quantity as the maximum for any single ingredient. Be careful! Verify any critical recipe before you cook it, and don't accidentally use the nerfed Iron Cooking Pot. If you accidentally add just one more item to a base, everything else suddenly becomes an additive.
    • Only 21 different ingredients are allowed in a recipe.
    • As a practical matter 3 additives per base would be a lot of additives, and with Cooking Skill level 5 you can use 5 bases, so 5*(3+1) = 20 which is still less than 21 but you'll never need that many different ingredients anyway.

Stats, which is just the Glazing in actual practice, determines what you'll be able to do while the recipe is in effect.

Location

The distances that we derived earlier can be regarded as the radii of circles whose location is determined by the separation, and therefore the relative location, of the Additives and Bases in a R2 space that uses seconds as the metric.

Huh??? OK. The dotted circles are the Doughnut Holes.

Intercepts.png

The analytical technique expresses the circles with equations of the form X2 + Y2 = (2R)2, solves the consequent quadratic equations for the intercepts, and connects the consequent point pairs to create a star burst pattern that visually identifies the single point, the location of the additive, that all of the circles must have in common. The distance between any two ingredients, if one of them is sufficiently potent, can be mapped onto a 2000x2000 unit plane (an R^2 space) where the units are expressed in seconds. We'll skip over the painful exercise of normalizing the R^2 space, and simply thank Quizzical for his efforts. For our purposes, the location of several base ingredients is well known, and we can use those bases as our reference points.

As cheap, well positioned bases, we particularly like:

( 499, -468) Cabbage
(-582,  793) Camel Milk
( 366,  615) Coconut Meat
(-367, -580) Oil
(- 80, -102) Garlic, which is sometimes needed if potencies are low.  
  • Start by determining the distance between the unknown location of the additive and the known location of the reference base.
  • Inscribe a circle of radius distance about the known location of the reference base. You know that the additive must lie somewhere on that circle.
  • Continue by determining the distance between the unknown location of the additive and the known location of a different base.
  • Inscribe a circle about that base.
  • We'll duck some lovely geometrical proofs, and simply state that the inscribed circles will have exactly two points in common.
  • Draw a line between those two points.
  • Do it some more and you'll get the following Starburst pattern.

Zanthoxylum.png

Take particular note that Zanthoxylum is collinear with Coconut Meat and Oil, and that the associated chord is therefore a very short line. We'll discuss collinearity, and tangent circles, in more detail when we get to calibration.

Spreadsheet

The remainder of this page discusses a Microsoft Excel tool that will allow you to more easily get the results that you want, using the herbs and mushrooms that you already have on-hand. The file is a bit too large to include as a wiki attachment, so you'll need to download it from Insertfile. The remaining portions of this wiki page includes enough explanatory information for you to follow the action, but it's mostly a discussion regarding the use of the spreadsheet, and how it's structured.

There are five tabs in the spreadsheet:

  • Instructions
  • Inventory
  • Tests
  • Calibration
  • Contributions

Instructions

Inventory.png

The inventory is a pretty simple concept, but it will save you an enormous amount of time.

  • If you don't have something, you can't use it in a recipe.
  • Use the next best thing.

Don't even try to maintain a manual inventory. Folks are constantly adding herbs and using ingredients. You'll go nuts and the inventory won't be accurate anyway. To start a new cycle:

  • Select Data > Subtotals, and Remove All.
  • Highlight the current data rows (between the Header and 9999 Zzformulas row) and Edit > Delete.

The in-game Utility menu for Chests and Tents allows you to copy the container contents to your clipboard. Go in-game, and take a look at the inventory in all of your cooking containers.

  • Use the Utility menu on each in-game chest and tent, and Copy the Contents to the Clipboard
  • Paste the chest data into the inventory tab, beginning on row 3.
  • Use the Chest column if you wish to include various private owner chests.
    • As you won't be able to copy the contents of a private chest, ask the owner to open a private chat, and say Hi or something to create a new line character.
    • Have them copy the contents of their chest and paste it into the chat window.
      • We're talking to Pharaoh about it, but the current chat buffer only supports 2500 characters which isn't enough for most herb chests.
      • Have them verify that the last item in their pasted inventory actually appears in the chat box. If not, have them paste their inventory into Notepad, or some such, copy just the truncated portion, and paste the missing portion into their chat tab.
    • /copy and paste the private chat into Notepad or some other editor
    • Copy the newline character (the little box)
    • Ctl+H and replace "____" (four blanks) with newline (you just copied it)
    • Now you can copy/paste the chest contents into the Inventory.
    • Don't forget to drag the person's name into the Chest column.
  • Drag the formulas in the 2nd row ( 0 Zzformulas, all but the chest data that you just added) to the bottom of the data.
  • The spreadsheet will parse the Chest Data, and will isolate the Ingredient Name and the Quantity.
  • Sort by Verify, Chest, Ingredient, and either correct or delete any item that isn't a cooking ingredient except the Zzzformula row.

Now create the lookup table.

  • Resort the data if you've done anything fancy.
    • It would be possible to lookup the Type of the ingredient as well as verifying it's existence, but it's not worth the bother. This inventory page is in simple alphabetical order. The inventory that you're really after is the lookup value in the Contributions tab, and that stays with the other ingredient data as you sort and filter.
  • Highlight columns F1:Gxxx (the end of the data)
  • Use the Excel Subtotal capability to group all instances of each ingredient name, summing the quantity.
  • Once you have your subtotals, note the row number at the end of the Inventory table.
  • Go to the Contributions tab and select cell AC2 (the first entry in the Chests column). If the Inventory!$F$2:$G$nnn value in the lookup range (the actual end of the Inventory lookup table) doesn't match your observed Gnnn row number, correct it and drag the healed value down the length of the Chests column.

A magic lookup table is now available.

  • Because you paid attention to the Verify column, you already know that the Ingredient names in the main spreadsheet are spelled exactly as they are defined in the chest inventory.
  • The spreadsheet uses a concatenated string, =Ingredient & " Total", as a Vlookup index that will find only the subtotals. Presto! You now have a comprehensive inventory that:
    • Is automatic
    • Is easy to maintain
    • Stays with the ingredients as you sort and filter them on the Contributions tab
    • Can itself be used as a filter criteria

We use the inventory to track several private Herb Chests, plus our main pantry. Consequently we have several different user names in the Chest column.

  • To exclude one or two users from the currently available inventory, use a custom filter of "Does not begin with <name>.
  • To include only a few users, use a custom filter of "Equals <null>" to pick up the subtotal line, OR "Begins with <name>."
  • There's no need to reestablish the subtotals, as they are filter sensitive.

Tests

TestData.png

We've included Serpentfish because a bad location has been floating around. Wheat, with various roasts, is a new ingredient. We're accumulating test results on the Tests page, and you're more than welcome to contribute additional data.

Simply being organized is a major advantage when you are testing a lot of recipes.

The best approach is to set up your test plan ahead of time, you don't necessarily need to test everything if you're getting good results. Assign an identity to each test. The identity doesn't really matter, it just allows you to sort the data in various orders and autofilter to selectively look at test results. Easy Wiki Tables explains how to transfer bulk information from a spreadsheet to the wiki. Save your native mode *.xls file before you SaveAs with the *.cvs extension, which only saves the current tab. Carefully correct headers that include a nextline character. You may want to insert a break instead.
is the html code for a break. Replace the comma in Wheat (Dried, Raw). When you type an ingredient into the Additive or Base fields, the spreadsheet will fetch the ingredient type from the Contributions Tab. This is mostly to verify your spelling, but it also allows you to sort the test data in Chest sequence.

The Tests Tab has the following columns:

Column Description

Additive (always 1) Only one Additive is used in this series of 1:6 tests Ta The type of the additive allows you to sort your test data to match the chest sequence. The main purpose of the lookup, however, is verification that the tested ingredient is spelled correctly, and is included in the database. Potency This is a calculated value. Potency = (Duration-Bulk) * (Na+Nb)/Na Proportion Bulk This is also a calculated value, using the same formula. You should try to pair an additive with the most effective available base, if you can, as the recipe will then:

  • Provide better Stats granularity
  • Verify that the Bulk values are still the same, and that you can therefore trust the test data.

Base 1:6 then 1:13 if needed Each line of test data implies two related tests:

  • 1:6 Additive:Base
  • 1:13 Additive:Base

Tb Verification that the Base exists. 1:6 The calculated Duration, in total seconds, reported by the first test. 1:13 The calculated Duration, in total seconds, reported by the second test. 7m User entered minutes from the Critical Evaluation of the first test. Add 60 if the duration is more than an hour. 7s User entered seconds from the Critical Evaluation of the first test 14m User entered minutes from the Critical Evaluation of the first test 14s User entered seconds from the Critical Evaluation of the first test Tester Who did the testing GameDate When was the testing done