Work-Based Crafting and Construction (not Time-Based)

One thing I’ve noticed is that the “quality” level of tools doesn’t mean much other than enabling a higher tier of things to be built. Also, all crafting and construction takes the same length of time regardless of how skilled or well-equipped the player is. What if the length of time it takes to craft something was derived from how capable someone is of crafting that type of item?

The solution is to quantify the amount of work that must be done in order to craft something. In reality, this is the number of stitches and cuts required to make the t-shirt, the number of cuts required to make a spear, or the number of cubic meters of dirt that must be displaced in order to dig a pit. Someone with higher skill at sewing should be able to make the same garment as strong with fewer stitches, or may be able to stitch more quickly. Someone with a better shovel should be able to excavate a trench more quickly.

I propose that all craftables and buildables have a metric called work points, that is related to the length of time that it takes to create with minimal skills and minimal tools. For example:

Pointy Stick
100 work points

skill: level 0 fabrication
tool: level 1 cutting quality
component: one heavy stick

Then, say that each level of fabrication reduces the amount of work points for all fabrication-based items by 10%, so

Level 1: 90%
Level 2: 81%
Level 3: 73%
Level 4: 66%

…and so on.

Similarly, say that different tools have different amounts of build-points per minute.

Makeshift Knife: 5 points/min
Pocket Knife: 6 points/min
Survival Knife: 10 points/min
Circular Saw (on): 50 points/min

…and so on.

For construction, everything would be very similar.

Pit
1000 work points

skill: level 0 construction
tool: level 1 digging quality

Each level of construction reduces the amount of workpoints by 10%.

Digging Stick: 10 points/min
Stone Shovel: 20 points/min
Shovel: 25 points/min
Entrenching tool: 35 points/min
Backhoe: 200 points/min

You could also have fun with stats. Maybe strength confers a bonus to construction rates and dexterity to manual tasks.

This. I like this.

could take a lot of balancing, but would have the potential to make crafting more streamlined, and sensible, it may also make experience gain better balanced as well.

Really what we need is to eventually split the recipes out into a number of “steps” (kinda similar to the construction system), each of which can either be turn or time based (since some things like cooking don’t care how skilled you are, they aren’t going to cook faster). In addition we should hopefully allow for you to walk away from some time-based things (like cooking), possibly with penalties if you wait too long (burned your squirrel meat?), while we could also allow for skill modifiers on the turn-based ones. Each step could then also require given tools, and we could have a tool modifier be applied either to the time or number of turns that a given step takes.

The end result would probably look something like this:

{ "id": "blueberry_pie", //What is the recipe id "suffix": "from_scratch", //Used to differentiate between certain things (i.e. acid bomb from batteries or from hardcore acid), possible could require //ingredients with a certain suffix in the steps below "difficulty": 3, "recipe": { "step": { "cost": ["turns": 1000], //100 turns per 6 seconds at average speed "ingredients": [ ["blueberry": 5], //We need five blueberries regardless [["flour": 1, "butter": 2, "water_clean": 1], ["pie_crust": 1]] //And either make a pie crust or use a pre-made one ], "tools": [ ["CUTTING": 1, "cost": 1], //Beyond having a basic knife having a sharper one doesn't really help ["CONTAINER": 1, "cost": 1] //Need a pie tin of some kind ] "skills": [ ["cooking": 10, "cap": 50] // Every point in cooking beyond the difficulty gives you a 10% decrease, up to 50% ] }, "step": { "cost": ["time": 300], //1 time unit = 6 seconds "tools": [ ["COOKING": 1,, "cost": 1, "mod": 5, "cap": 90], //Having a better oven reduces the time needed by 5% for each level above 1, //but won't reduce it below 90% ["CONTAINER": 1, "cost": 1] //Need a pie tin of some kind ], "can_leave": true, //We can walk away while this is cooking "penalties": ["BURN" : 1] //Leave it cooking for too long and it will output a burnt result } "result": { "id": "blueberry_pie" //We could also put things like number of charges, whether it's in a container and whether or not it is an active item here } //"can_disassemble": false, //Normally we can't disassemble a pie, but this is a magic example pie so we'll do this instead // Probably by default have this just attempt to do the above steps in reverse order "disassembly": { "use_assembly": true, //We still want the above steps in reverse order, so we need this to keep those around "step": { "count": 2, // But let's replace the second step (the cooking) with something else "cost": ["time": 50], "tools": [ ["FREEZING": 1, "cost": 1, "mod": 10, "cap": 60], //This is how thermodynamics works right? ["CONTAINER": 1, "cost": 1] ] } "step": { "count": .5, //And let's add an extra step at the end (lower counts are later in the disassembly process!) "cost": ["turns": 0], // Could probably just have it assume this, putting it here for reference purposes "tools": ["COOKING": -1, "cost": 1], //Magically charge up whatever cooking thing we are using here } } } }

Ideally we could also set up some shortcut types, so you could do something like this:

{ "id": "blueberry_pie", "suffix": "from_scratch", "difficulty": 3, "use_template": { "id": "pie", //Use the pie template "values": [1000, 300] //The values needed for the template, in this case the various preparation and baking times "ingredients": ["blueberry": 5] //The ingredients the template needs, in this case the type of filling }
And then everything else could be pulled from the designated template, meaning you could define the basic pie recipe in one place and greatly shorten the size of a list of pie recipes. (Probably could do something similar with normal item definitions too, and allow for a bunch of identical pies that still had different id’s, different flavor text, and possibly different nutrition, but that had the exact same bashing/resistance/etc. properties without all that unnecessary duplication in the item definition files.)

wow, that could really condense the crafting screen too, the main list would just have templates listed, with an in-between color for some versions of a template available to craft but not all of them.
Food:


| Pies |
| Soups |
| steaks |
| sandwiches - PB&J |
| - bologna |
| - Philly |
|___________________|

sumptin like dat anywho

Seems somewhat reasonable, though I’d like to see a description of just what benefits we’re getting out of it considering it’s roughly doubling how complex a recipe is.
Rather than using separate linked templates, it might be good to have a main recipe, and the variants nested in it, that would keep things a bit tidy and wouldn’t force you to go read three different definitions to find out how baking a pie works.
As for how the variants specify things, they could either do an override, or the main recipe could specify things that must be defined by variants.

[quote=“Kevin Granade, post:6, topic:9610”]Seems somewhat reasonable, though I’d like to see a description of just what benefits we’re getting out of it considering it’s roughly doubling how complex a recipe is.
Rather than using separate linked templates, it might be good to have a main recipe, and the variants nested in it, that would keep things a bit tidy and wouldn’t force you to go read three different definitions to find out how baking a pie works.
As for how the variants specify things, they could either do an override, or the main recipe could specify things that must be defined by variants.[/quote]
Yeah the template thing was just an idea off the top of my head to come up with a way to gain the (fairly small) benefits of having stage defined crafting without leading to any real increases in overall recipe complexity, and I’m sure there are other ways to do it.

(Notable benefits would include the abilities for partially crafting things without doing them all at once, being able to walk away and let something craft/cook for any given recipe, having skills/tools only affect part of the crafting instead of the whole, and maybe even expanding it to allow for different success rates/skill requirements for different parts of the recipe [adding pie filling to a pie is very easy to accomplish; making a good crust from scratch less so]).

I worry that the more convoluted the process of crafting becomes, the more you lose in tedium. There are already mechanics in the game that allow for crafting things that require dead time, with kilns, distillation, and fermentation being examples. That could just be expanded to account for some new things. Boiling water, for example, should likely be separated as a passive craft. The size of the boiling container should determine how much water can be boiled at once and thus how much product can be batch-crafted from that water.

The batch crafting is a great start, but I’m interested in seeing more of the ability to create economies of scale within the game. A well-skilled and well-equipped character should be able to get much more work done than a novice with basic tools. I’d like to see more of an incentive to use the active tools, such as the circular saw and nailgun to construct wooden things five times more quickly, or the chainsaw to fell trees more quickly. If there were bulldozers or backhoes within the game, you could dig pits, trenches or even moats in a reasonable amount of time. You could even have irrigation channels built to bring water from the river to your base.

Not quite. There are a handful of things that shortcut there way around the crafting system completely, each with their own implementations. It is a far cry from an actual “mechanic that allows for dead time”.

What I’ve been talking about would tie that ability into the crafting system, so anytime you wanted to make a new recipe with dead time it could all be done from the JSON files (and thus could be done in mods) without you needing to crack open the actual source code to do it.