NPC helpers for crafting

My character is currently batch processing tons of crops to make them into food. What I was thinking is that it would be great to be able to speed up the time it takes to process these using nearby friendly npcs. Of course it would be even better if I could just instruct them to do all of the cooking for me. Perhaps in exchange they keep a share of the food?

I can think of a few ways this could work. A simple one is to have greater speedups for batch processing on recipes when you have a friendly npc nearby, or to allow batch processing on a larger selection of recipes because the idea is both you and the npc nearby are doing the same task in parallel. NPCs might have a separate chance to fail at crafting the recipe based on their skill levels.

Add the relevant skill/leveling checks for the NPC(s) and sure, that’d be great.

Whether it’s straightforward to code, probably not so much. But I’d love to be wrong there.

It would probably be simple to simply abstract away the NPCs assistance while doing player crafting, just check the nearby NPCs, check their skill, then say for each NPC with the required skill level, you can craft 1 more item in the given time (where applicable). Actually directing the NPCs to craft an item would be a little bit more complicated. I think we’d have to sort out the ownership issue before implementing something like that.

VERY good idea. All of the convenience, none of the AI coding.

That, and a simple zoning-based permissions system (e.g. designate a tile or two as “NPC weapons stockpile,” and followers will pick up weapons you put there and nowhere else), and we could have a real NPC base.

Do NPCs currently have skills? If not, could we make this happen for 0-skill recipes without adding NPC-skill functionality? If so, could we do this by checking their skills, without implementing skill gain for them?

Baby steps.

I think most NPC skills (at least the static NPCs) are hard defined, and right now most only have combat/interpersonal skills set. I’m almost certain the framework is there to give them crafting skills though.

I think it is actually a very easy addition. I’ll take a look at it tonight but NPCs have all the skills players have and gain experience the same ways. If you befriend an NPC and pass the ‘I’d like to know a bit more about you…’ skill check it brings up the @ menu for the NPC. I remember adding that last summer.

As far as detecting the NPC’s it shouldn’t be an issue because you just parse through the active NPC list looking for all NPCs that are in the ‘Your Followers’ faction and do a range check. If they qualify for both of those, having them decrease batch time crafting based on their skills wouldn’t be difficult. Having them craft things you can’t would be a bit more complicated.

What do you propose the bonus be?
Having every NPC theoretically running a parallel single unit and pick the lower time between the mass of single units vs your own batch time? Having three batches running at the same time because you have two NPC assistants might be a little broken…
A fixed bonus?

[quote=“acidia, post:7, topic:9304”]What do you propose the bonus be?
Having every NPC theoretically running a parallel single unit and pick the lower time between the mass of single units vs your own batch time? Having three batches running at the same time because you have two NPC assistants might be a little broken…
A fixed bonus?[/quote]
If we’re going to have to grind NPCs’ skills the same way we grind our own - “Good morning, everyone! You all have your heavy sticks, I see! That’s good, because today is Distaff and Spindle… uh, Tuesday!” - or if we have to keep the thieving ingrates fed and watered, I’d say such a broken bonus is justified.

In real life you don’t get a 2x speed up from having two people doing a job. Maybe you have a 1.999x or a 1.0001x speed up or even a 3x speed up. To make it simple we could just pick something that isn’t too over powered.

From a usability perspective it would be most useful for low level operations that wouldn’t otherwise benefit from batch processing (you can batch process these items but there is no time savings currently). However I imagine the simplest coding wise would be a magic formula that tweaks the way existing batch processing times are calculated (says the person not looking at the code).

Just my opinion: NPC skill grinding sounds like a horrible idea. Crafting should probably only advance the players skills. Maybe NPC’s skills progress when the player gives them books to read or just naturally progress over time outside of the player’s control. Perhaps it’s best that they remain hard coded though? For now hard coded skill levels really does seam reasonable to me. The main things I hoped my proposal would do is:

a) a way to make npcs more useful/interactive in a semi-realistic way while avoiding ownership issues.
b) reduce grinding when harvesting crops and similar tasks.

(Again haven’t looked at the code) I’m guessing a lot of the complexity might arise when trying to let the user control whether to use the help of npcs. It might be simpler to not check npc skill levels but make the bonus smaller than it would be otherwise. This way there doesn’t need to be a whole interface for preventing the loss of ingredients due to poor npc helper skills. A compromise is only allow this if the npc is guaranteed not to fail (recipe is below skill level).

The justification for not doing an npc skill check might be that the npcs aren’t actually doing the work on their own, they are just assisting you or doing it under your supervision. Maybe you need an extra level of skill to be able to supervise npcs on a task than you would need otherwise (or alternately -1 to your skill level when getting help from npcs, but that adds back in the opt-in/opt-out complexities).

There are a lot of possibilities, so hopefully we can come up with something that’s simple enough to implement. :slight_smile:

Most NPCs have a fairly diverse starting skill set so raising skills from nothing isn’t really an issue. It would be more important to focus on finding that one or two who are good at what you need them to be.

So, I’ll look at a basic implementation as:
just you, 100% time 100% Exp
you + 1, 75% time, 75% Exp you, 75% Exp npc
you + 2, 60% time, 50% Exp you, 50% exp to each npc

The bonus only kicks in if you are doing batch crafting and the time will never be less than that of a single item.
I might throw is a 10% exp kick to all npcs who are watching you craft, regardless of whether or not they can help… that would let you ‘teach’ your followers from the ground up.

Sound like a decent starting point?

EDIT:
tested
alone -> 5 clean water in 10min
1 npc -> 8
2 npc -> 11

on to exp!

Sounds very cool, acidia!

I guess a few hours fiddling with things wasn’t so easy but compared to most things its quick. :slight_smile:

That’s so awesome! Thanks acidia!