Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Research and discovery system for recipes #64342

Closed
Light-Wave opened this issue Mar 17, 2023 · 3 comments
Closed

Research and discovery system for recipes #64342

Light-Wave opened this issue Mar 17, 2023 · 3 comments
Labels
stale Closed for lack of activity, but still valid. <Suggestion / Discussion> Talk it out before implementing

Comments

@Light-Wave
Copy link
Contributor

Is your feature request related to a problem? Please describe.

Right now we have a binary system where you either learn a recipe automatically when you have the skill, or you need a book to learn it. But it would be nice to have an alternative to books where you can learn some recipes through experimentation and research.
For example, the player character might not know how to make a 3L glass jar without instructions. But with the tool and materials available, they might be able to experiment with different techniques until they find a system that works, thus teaching them the recipe.
The main reason I would want this is to make playing Innawood possible with fewer recipe tweaks. If the player can learn the recipe for 3L jars through experimentation, then Innawood does not need to give the player the recipe for free. But I think this would also make sense to have in the base game in case certain books proves difficult to obtain.

Solution you would like.

For flavour, the idea is that you have a vague idea that these things are possible to create, and you have some sort of idea what resources it might take, but it might take some experimentation to get the process right.

See #58633 for an example of a possible tech tree.

I'm thinking of a system with groups of recipes. A recipe can be unlocked through two different ways;

Firstly, you can do focused research towards a group. If you have a book with recipes in, you will learn all recipes that you have
in written form

Secondly, you can discover a recipe through crafting a related item. For example, if you craft a 3l jar, you might discover the recipe to craft a test tube.

Once you have learned all recipes in a group, that group is considered completed. Some groups require you to complete other groups in order to start researching. For example, to research Laboratory glassware you might first need to fully discover all recipes in Glassworking.

Somewhat separate from that, I think there should also be single-recipe projects where you are trying to discover a single recipe. These might consume 2 to 10 times the resources required to normally do the recipe, and gives 0 to 1 times the recipe's outputs in addition to learning the actual recipe.
For example, let's say we have a research project titled "Examine medical properties of cattail". It is auto learned at 1 survival. It consumes 12 cattail stalks, requires a tool with cutting 2 or more, takes 30 minutes, gives 7 units of cattail jelly and 100 plant fiber, and also teaches the true cattail jelly recipe.
The idea is that you have a vague idea how to do it, so you grab a bunch of resources and experiments until you figure out a method that works, ruining many of the resources in the process.
I think most recipes listed under Survival herb use in #58633 should be learned in this way, along with the recipes for glass shards, and perhaps the recipes for better bronze and steel swords.

I can think of three different ways to implement the requirement to fully explore one tech group in order to be able to progress to the next. Let's take for example the Laboratory glassware research recipe, which would require you to either discover all recipes in Glassworking, or have the book called "The Art of Glassblowing".
One way would be to add an EoC into the tools requirement which checks if you have all of the recipes learned. Also, if you have The Art of Glassblowing, you should probably be able to bypass this requirement. So it could be something like this, maybe:

"tools": [
    [
      [
        "glassblowing_book",
        -1
      ],
      [
        "condition": { "u_has_var": "finished_glassworking", "type": "bool", "context": "research", "value": "yes" },
        "true_text": "finished glassworking research",
        "false_text": "finished glassworking research"
      ]
    ]
  ]

I'm not sure if that is currently possible, but it would be my preferred method.

Another way would be that when the player finishes a Glassworking research, they are given a piece of paper with a glassworking recipe on. Once they have collected all of them, they can combine them into a glassworking theory, and once they have that, they can use that as a tool to study Laboratory glassware. This would suggest that research projects should consume paper and ink as well, or at least something paper-like and something ink-like.

Another approach would be to have a dummy version of the Laboratory glassware research project available by default. This recipe requires either the glassworking book or a dymmy item that can't be crafted called "finished glassworking research". Once you have unlocked all Glassworking recipes, an EoC runs that removes the dummy recipe and gives you a version of the recipe that does not require either the book or the dummy item.

Describe alternatives you have considered.

Have research be something only done in a basecamp, or have it in a separate mod

Additional context

Owlfren (Pingfriendly) from the dev discord requested me to write this down, and expressed interest in implementing it.

@Light-Wave Light-Wave added the <Suggestion / Discussion> Talk it out before implementing label Mar 17, 2023
@kevingranade
Copy link
Member

I think most of what you're trying to represent with groups we can already handle by using proficiencies. We already have recipes where a proficiency is exercised but not mandatory so you just take more time and possibly waste materials while you're doing the craft, and if you keep using it you're going to gain the proficiency. Then we have other recipes where you can't even attempt it without the proficiency.

What we're missing is as you say "I think it should be possible to make this thing and I have a vague idea of how to do it but I don't know the exact steps required".

I see this going several ways, all of which could coexist. The 1st is having related recipes that are simpler that with practice will provide the inspiration necessary to start working on the goal recipe. The 2nd is similar to what you suggested, a targeted recipe the goal of which is to craft the item in question but with much much higher resource requirements time requirements and failure rate. The 3rd option is a dedicated design recipe that doesn't even yield a functional item but represents planning and research necessary to start on the initial craft, possibly the one with hightened requirements.

@pjf
Copy link
Contributor

pjf commented Mar 24, 2023

One thing I would dearly love is for objects to be able to provide recipes, not just manuals. This would not only provide research possibilities, but could also reduce crafting-screen clutter by (for example) not showing the 7-10 split until you actually find a bowling ball, and examine the medical properties of cattail wouldn't show up until you actually find and harvest cattails.

@github-actions
Copy link
Contributor

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. Please do not bump or comment on this issue unless you are actively working on it. Stale issues, and stale issues that are closed are still considered.

@github-actions github-actions bot added the stale Closed for lack of activity, but still valid. label Apr 23, 2023
@github-actions github-actions bot closed this as not planned Won't fix, can't repro, duplicate, stale May 23, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
stale Closed for lack of activity, but still valid. <Suggestion / Discussion> Talk it out before implementing
Projects
None yet
Development

No branches or pull requests

3 participants