Jump to content

Replace static recipes with capability based recipes


arkonten

Recommended Posts

I recently looked into PZ modding, particularly crafting recipes. Being familiar with how this works in Cataclysm: Dark Days Ahead, I realize that the current design in PZ makes the life of modders pretty awkward, and I imagine it's even worse for whoever at Indie Stone that is working on items/recipes. I think it is best explained with an example:

The recipe for "Slice Watermelon" is:

  • Watermelon
  • keep HuntingKnife/KitchenKnife/Saw/Axe

So whenever another tool that should be able to slice watermelons is added, it has to be added to this recipe (and all other relevant recipes), which is very prone to error and causes a maintenance nightmare.

For instance, the Stone axe was recently added to vanilla; perhaps it was intentional to not add it to the "Slice Watermelon" recipe (the stone edge is considered to dull compared to a metal axe edge?) but I still think it demonstrates my point (a decision had to be made for this specific recipe). And as for modding, none of the knives added by Hydrocraft (e.g. the copper knife you can forge yourself) can slice a melon; to make that happen Hydrocraft would have to override the vanilla "Slice watermelon" recipe, and then start tracking when the vanilla game updates that recipe to not lose out on the changes next time something sharp is added in vanilla (e.g. swords). These collisions also occur between mods, often requiring mod compatibility patches between every pair of mods messing with the same recipes.

I think a system where tools have capabilities would be much more practical (and intuitive!). For instance we could have the following capabilities for various tools (some new):

  • Kitchen knife: Cutting, Fine cutting, Drilling
  • Hunting knife: Cutting, Fine cutting, Drilling
  • Pocket knife: Cutting, Fine cutting, Drilling
  • Butter knife: Cutting, Drilling
  • Sharp stone: Cutting, Drilling
  • Hand drill: Drilling, Fine drilling, Metal drilling
  • Axe: Cutting, Chopping
  • Stone axe: Cutting, Chopping

And then "Slice watermelon" simply requires a tool with "Cutting" and that's it. Next time a tool with Cutting is added, it that tool can slice watermelons. Next time a recipe that requires Cutting is added, the tool is automatically usable in it. Modders and Indie Stone devs, rejoice!

To make tools more interesting we could expand this system with modifiers that allow more differentiation:

  • Kitchen knife: Cutting, Fine cutting (Bad), Drilling (Slow)
  • Hunting knife: Cutting, Fine cutting (Slow), Drilling (Slow)
  • Pocket knife: Cutting (Slow), Fine cutting, Drilling (Slow)
  • Butter knife: Cutting (Slow), Drilling (Slow, Bad)
  • Sharp stone: Cutting (Bad), Drilling (Slow, Bad)
  • Hand drill: Drilling, Fine drilling, Metal drilling (Slow)
  • Axe: Cutting (Bad), Chopping trees
  • Stone axe: Cutting (Slow, Bad), Chopping trees (Slow)

"Slow" means that if the tool is selected, crafting time is increased (perhaps it should be parameterized, e.g. "(Slow=50)" for "50% slower"), "Bad" means the result is of slightly lower quality (lower starting condition; more waste => less nutrition when preparing food).

With the above capabilities slicing a watermelon with a butter knife is slower than when using a kitchen knife, and if we use an axe we'll waste a little bit of melon in the process because the axe head is awkward to cut with.

Edited by arkonten
Link to comment
Share on other sites

Nice idea!

I think it could be refined a bit more by giving a tool an "edge" value. "Edge = 0" means there is no edge, or the bladed item is too dull to do anything but be used as a rather useless blunt weapon. Bigger the value the sharper the tool. This would also mean the sharpness of a blade could deteriorate in use and require honing or resharpening.

 

Accompanied with this there should be a "mass" value. For example an axe would have both high edge value and high mass value, thus making it a good tool to chop wood, whereas a kitchen knife with a low mass would be useless even though it's sharp. This could extend to damage value of blunt objects in general: a low mass hammer does obviously less damage than high mass sledgehammer.

 

Couple these with a weapon wind up animation multiplier and one vs two handed multiplier and you should have rather nice way of getting base damage for all weapons, base game or modded. Then add buffs and debuffs like general condition and critical chance.

Link to comment
Share on other sites

10 hours ago, Moloch Horridus said:

I think it could be refined a bit more by giving a tool an "edge" value. "Edge = 0" means there is no edge, or the bladed item is too dull to do anything but be used as a rather useless blunt weapon. Bigger the value the sharper the tool. This would also mean the sharpness of a blade could deteriorate in use and require honing or resharpening.

That would do the work as well, and in fact is how it works in Cataclysm: Dark Days Ahead. Personally, as a player, I believe I would enjoy qualitative modifiers more than yet another number scale.

10 hours ago, Moloch Horridus said:

Accompanied with this there should be a "mass" value. For example an axe would have both high edge value and high mass value, thus making it a good tool to chop wood, whereas a kitchen knife with a low mass would be useless even though it's sharp. This could extend to damage value of blunt objects in general: a low mass hammer does obviously less damage than high mass sledgehammer.

 

Couple these with a weapon wind up animation multiplier and one vs two handed multiplier and you should have rather nice way of getting base damage for all weapons, base game or modded. Then add buffs and debuffs like general condition and critical chance.

Sounds cool! I'm not super sure it is worth implementing this, though, since it is an already solved problem. After all, it is not that hard to assign reasonable/good enough damage stats when designing a new weapon by just comparing it to similar, existing ones. But sure, when computers can support it (and if I still live!) I will of course prefer full physical simulation. :)

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...