Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  
Pages: [1] 2

Author Topic: A straightforward cooking fix, using existing mechanics  (Read 5384 times)

Igfig

  • Bay Watcher
    • View Profile
A straightforward cooking fix, using existing mechanics
« on: December 10, 2009, 02:07:45 pm »

Yeah, I know there are a lot of cooking threads out there but I think I've got something new to contribute to the discussion.

So, there's that big weirdness with cooking right now, where you'll often get something like a Quarry Bush Leaf Roast containing quarry bush leaves, pig tail seeds, dwarven sugar and sewer brew but no actual main ingredient.  Weird, right?

Here's my idea to fix that: borrow the mechanic from item decoration.  I mean the one that gives you items like "This is a +chalk ring+.  It is adorned with prase opals and menaces with spikes of granite."  Except with food, it'll be more like "This is a +cat helmet roast+.  It is adorned with dwarven cheese and menaces with sauce of whip wine."  (Maybe not in those exact words, though.)

We also need one new tag, [EDIBLE_INGREDIENT]. Edible items that shouldn't be used as a main ingredient replace their [EDIBLE_COOKED] tag with [EDIBLE_INGREDIENT] in the raws.

Now cooking will make a lot more sense, while still being pretty straightforward.  When a dwarf decides to cook a meal, he'll start with a main ingredient--something with the [EDIBLE_COOKED] tag--then gather some secondary ingredients with [EDIBLE_COOKED] and [EDIBLE_INGREDIENT].  He "decorates" the primary ingredient with the secondary ones, and voila!  Food.  It's kind of like artifact construction, except that the number of ingredients is fixed by the meal level (easy/fine/lavish).  Also there are fewer tantrums.

This can definitely be expanded upon; I especially like this thread's ideas for ingredient adjectives and flavours.  Also this one's ideas about cooking techniques (roasting/boiling/etc).  One similar idea I had was to exploit the REACTION_CLASS tag to make ingredients change name in the cooking process.  That is, have intestines turn into sausages, flour turn into bread, and so on.

So, how 'bout it?  Is this a good solution to Req150 Req129? And are you hungry yet?
« Last Edit: December 11, 2009, 11:44:06 pm by Igfig »
Logged

Nadaka

  • Bay Watcher
    • View Profile
    • http://www.nadaka.us
Re: A straightforward cooking fix, using existing mechanics
« Reply #1 on: December 10, 2009, 04:25:36 pm »

That is a remarkably good idea.

The EDIBLE_COOKED and EDIBLE_INGREDIENT tags could also specify what the cooked food is called.

Cave wheat flour - > bread|biscuit
alcohol -> soup|rue|sauce|glaze
quarry bush leave -> salad|greens
etc.
Logged
Take me out to the black, tell them I ain't comin' back...
I don't care cause I'm still free, you can't take the sky from me...

I turned myself into a monster, to fight against the monsters of the world.

qoonpooka

  • Bay Watcher
    • View Profile
Re: A straightforward cooking fix, using existing mechanics
« Reply #2 on: December 10, 2009, 04:29:10 pm »

I dig this, a lot.

It would also be nice to see boozecooking restricted by making any recipe only be allowed one barrel of booze (for sauce and the like).  It would be even better to see ingredients generally restricted to one occurrence within a recipe.  While it's convenient to be cooking down my seeds into 4 high quality meals a round?  It's a dish that consists entirely of roasted seeds...
Logged

qoonpooka

  • Bay Watcher
    • View Profile
Re: A straightforward cooking fix, using existing mechanics
« Reply #3 on: December 10, 2009, 04:31:17 pm »

Cave wheat flour - > bread|biscuit
alcohol -> soup|rue|sauce|glaze
quarry bush leave -> salad|greens
etc.

Seeds -> Seasoning, Ground|Seasoning, Roast|Garnish, Crust
Sugar/Syrup->Glaze, Confection, Frosting (ugh)
Logged

Safe-Keeper

  • Bay Watcher
  • "Situation normal; all ****ed up"
    • View Profile
    • FS Mod tester
Re: A straightforward cooking fix, using existing mechanics
« Reply #4 on: December 10, 2009, 05:28:30 pm »

While I do not know much about the mechanics, and not having much experience with DF, I think this is a great idea.
Logged
"Sieging humans brought some war polar bears, and one of them started a camp fire. Highly trained!" --Today One accidentally introduces the panserbjørn into Dwarf Fortress lore

lucusLoC

  • Bay Watcher
    • View Profile
Re: A straightforward cooking fix, using existing mechanics
« Reply #5 on: December 10, 2009, 05:43:47 pm »

with regard to the seed thing, i do think that most seeds should be mill-able, or otherwise processable. are we getting rid of the 200 seed cap for this release?

also about the 4 seed food item: trail mix :-)
Logged
Quantum dumps are proof of "memory" being a perfectly normal dimension in DF. ~Gazz

qoonpooka

  • Bay Watcher
    • View Profile
Re: A straightforward cooking fix, using existing mechanics
« Reply #6 on: December 10, 2009, 05:58:47 pm »

with regard to the seed thing, i do think that most seeds should be mill-able, or otherwise processable. are we getting rid of the 200 seed cap for this release?

also about the 4 seed food item: trail mix :-)

Millable seeds would be awesome, as would adding a possible 3rd, 4th, 5th ingredient to cooking made of them: seasoning.  Doesn't add to the mass (because seeds adding to mass is silly) but gives a straight boost to output quality for as long as the seasoning supplies last.  There's precedent for this in the Smelter, which tracks fractional bars of metal.

Same mechanic, only backwards and we stop having those ridiculous overstock issues with seeds.
Logged

Fossaman

  • Bay Watcher
    • View Profile
Re: A straightforward cooking fix, using existing mechanics
« Reply #7 on: December 10, 2009, 06:03:46 pm »

I'm of the opinion that wheat type plants should produce only seeds, and then those are what gets milled into flour. But that would require some mechanic to reserve x number of seeds for replanting. Not that that's a bad idea in general...
Logged
Quote from: ThreeToe
This story had a slide down a chute. Everybody likes chutes.

Igfig

  • Bay Watcher
    • View Profile
Re: A straightforward cooking fix, using existing mechanics
« Reply #8 on: December 10, 2009, 06:18:18 pm »

That is a remarkably good idea.

The EDIBLE_COOKED and EDIBLE_INGREDIENT tags could also specify what the cooked food is called.

Ah, good idea.  Instead of REACTION_CLASS, just make the EDIBLE tags take arguments, eg. [EDIBLE_COOKED:tripe] or [EDIBLE_INGREDIENT:seasoning].  You could even put multiple EDIBLE tags on a food, and then it would pick one at random each time it was used as an ingredient.

Or ooh, another idea. Bit more complicated.  Have just one EDIBLE tag, but also some COOKED tags that work like DRINK and EXTRACT and specify its cooked properties in more detail.

For example, take this new plant:
Spoiler: Dwarven Okra (click to show/hide)
I dunno if the extra effort is actually worthwhile, but it might be fun.

I dig this, a lot.

It would also be nice to see boozecooking restricted by making any recipe only be allowed one barrel of booze (for sauce and the like).  It would be even better to see ingredients generally restricted to one occurrence within a recipe.  While it's convenient to be cooking down my seeds into 4 high quality meals a round?  It's a dish that consists entirely of roasted seeds...

I think the decoration code only allows for one decoration of each material on any given object.  A ring can't menace twice with spikes of cat leather.  Since my meals use the same code as decorations, it should be impossible to have more than one serving of any given ingredient in a meal.

Except that you're talking about types of ingredients... that makes it a little harder.  Is it really that bad to have more than one kind of booze in a recipe?  Or to cover your bagel in both poppy and sesame seeds?  As long as the booze and seeds aren't the main ingredient (and they shouldn't be, if the EDIBLE tokens are set right), I don't see the problem.

EDIT:
Quote from: people
millable seeds
Ah, good idea!  I feel like there's some hidden complexity of some sort, though.  Not quite sure where... lemme think about it some more.
« Last Edit: December 10, 2009, 06:29:36 pm by Igfig »
Logged

qoonpooka

  • Bay Watcher
    • View Profile
Re: A straightforward cooking fix, using existing mechanics
« Reply #9 on: December 10, 2009, 08:28:20 pm »

I think the decoration code only allows for one decoration of each material on any given object.  A ring can't menace twice with spikes of cat leather.  Since my meals use the same code as decorations, it should be impossible to have more than one serving of any given ingredient in a meal.

Except that you're talking about types of ingredients... that makes it a little harder.  Is it really that bad to have more than one kind of booze in a recipe?  Or to cover your bagel in both poppy and sesame seeds?  As long as the booze and seeds aren't the main ingredient (and they shouldn't be, if the EDIBLE tokens are set right), I don't see the problem.

Let's say I take a stack of 1 Bear Meat, a stack of 25 Dwarven Rum, a stack of 25 Dwarven Ale, and a stack of 25 Dwarven Wine.

The end product is a stack of 76 Booze Braised Bear, but really it's a few molecules of bear floating in a giant sea of de-alcoholed booze.

Alcohol stacks get huge compared to other ingredients and this would help control some of the ridiculous.
Logged

Derakon

  • Bay Watcher
    • View Profile
Re: A straightforward cooking fix, using existing mechanics
« Reply #10 on: December 10, 2009, 09:15:56 pm »

Presumably at the time that the switch is made from the current system to a "core ingredient + decorations" system, the quantities from stacks will also be modified so that the resulting stack is the size of the core ingredient stack. Ideally decoration inputs will only require partial stacks as well, although the game currently has no way to do that (every job currently operates on an entire stack).
Logged
Jetblade - an open-source Metroid/Castlevania game with procedurally-generated levels

qoonpooka

  • Bay Watcher
    • View Profile
Re: A straightforward cooking fix, using existing mechanics
« Reply #11 on: December 11, 2009, 07:50:51 am »

Presumably at the time that the switch is made from the current system to a "core ingredient + decorations" system, the quantities from stacks will also be modified so that the resulting stack is the size of the core ingredient stack. Ideally decoration inputs will only require partial stacks as well, although the game currently has no way to do that (every job currently operates on an entire stack).

I'm okay with the use of big stacks as filler.  Anyone who's cooked on a budget has done this: Broth intensive soups to cut down on ingredient costs, adding greens or potato to bulk things up at low costs, etc.

Quarry Leaves and Booze exploding the quantity of something is fine, as long as its kept restricted to a single stack of booze.  That way you're only likely to see +25 instead of +75.
Logged

Igfig

  • Bay Watcher
    • View Profile
Re: A straightforward cooking fix, using existing mechanics
« Reply #12 on: December 11, 2009, 10:17:32 am »

Is a stew of one meat and 25 booze really any better than one meat and 75 booze?  And is it really that bad to have a meal involving 25 meat, one ale, and one wine?

I agree that there's a problem, but I'm not sure that limiting the number of stacks is the way to do it.  Derakon's idea makes a lot of sense to me.  You could easily simulate the use of "filler" by making the main ingredient be whichever one comes in the largest stack.  Alternately, let all the ingredients with EDIBLE_COOKED contribute to the size of the meal stack, but not the ones with EDIBLE_INGREDIENT.  Or something like that, there're a lot of variants.

qoonpooka

  • Bay Watcher
    • View Profile
Re: A straightforward cooking fix, using existing mechanics
« Reply #13 on: December 11, 2009, 11:29:26 am »

Is a stew of one meat and 25 booze really any better than one meat and 75 booze?  And is it really that bad to have a meal involving 25 meat, one ale, and one wine?

I agree that there's a problem, but I'm not sure that limiting the number of stacks is the way to do it.  Derakon's idea makes a lot of sense to me.  You could easily simulate the use of "filler" by making the main ingredient be whichever one comes in the largest stack.  Alternately, let all the ingredients with EDIBLE_COOKED contribute to the size of the meal stack, but not the ones with EDIBLE_INGREDIENT.  Or something like that, there're a lot of variants.

It's true, and I agree that Derakon's idea is better.  But mine would be less code intensive and making a coder's life easier means making the coder more inclined to take on the project. :)

In general any improvement to cooking's sensibility would be awesome, IMO.

It would also be awesome if you could condense stacks, especially of seeds OMG.
Logged

Rowanas

  • Bay Watcher
  • I must be going senile.
    • View Profile
Re: A straightforward cooking fix, using existing mechanics
« Reply #14 on: December 11, 2009, 12:45:07 pm »

As a side note, this is a crap way to address req 150, but a pretty good way to address req 129. :D (see OP)
Logged
I agree with Urist. Steampunk is like Darth Vader winning Holland's Next Top Model. It would be awesome but not something I'd like in this game.
Unfortunately dying involves the amputation of the entire body from the dwarf.
Pages: [1] 2