NPC Rehabilitation Project


#1

I’d like to discuss a few ideas around making NPCs slightly less useless when they’re not being used as cannon fodder.

Skilled labor:

  • Assignable jobs based on skills. ( Mechanic, Blacksmith, Electrician, etc )
  • Each job gives either a task like tree-cutting or a list of pre-built crafting recipes.
  • Crafters use nearby equipment. (maybe inside crates if that gets too messy)
  • None of them actually move or do anything for optimization purposes. Timers determine everything.

Guards:

  • NPCs on guard duty can move from their guard position to chase targets.
  • Badly hurt NPCs run from combat.

Misc:

  • Assistants reduce construction time ( time / npcs + 1 ). Construction with one helper should take half as long, two helpers one third, etc.
  • Each assistant reduces batch crafting times to ( batch / npcs + 1 ).
  • Mechanics too, maybe?
  • NPCs lose morale when hurt or starving. Extreme morale loss may cause mutiny.
  • Idle chatter between NPCs.
  • NPCs learn from nearby books.

#2

Quick suggestions on quality of life type things:

NPCs on guard in a vehicle should stay in that vehicle position, not that world position.
NPC squads, one order affects all of them (it gets annoying to manage a group of four NPCs in a porta-base when you have to keep telling each one guard/follow constantly)
Perhaps a new option for “Stay here but help with crafting” so you don’t have to make your crafters follow you pre-craft, then tell them to guard so they don’t get themselves killed following you. (Not as big of a deal if squads end up as a thing though)

As for jobs, good ones to consider: wash clothes, boil water, dehydrate/make jerky, etc. Lots of really long but really simple crafting recipes that could be easily done by unskilled npcs.


#3

looking at how they use first aid items would help a lot. I know they’ll use asprin but they also spam use disinfectant on a bleeding wound, which doesn’t help at all.

Edit: in addition, making their broken limb healing match the newer player healing progress bars, this confuses newer players who expect to see that progress.


#4

This would probably be a bit higher on the difficulty ladder, but… Personal NPC waypoints and location/action schedules, and room designations for all allied NPCs to use. Assign personal waypoints for beds, guard posts, food pantries/dining rooms, crafting spots, etc. Select a location for the NPC to be and an action for them to perform, choose a time for them to do it or leave the time up to the NPC.

I’d also like to see it be possible to reliably order NPCs to use specific weapons without them taking their weapon’s DPS into account. Getting really tiring seeing NPCs refuse to wield longbows just because they can hurt things faster with their fists.

It’s not exactly a “quality of life” thing for the NPCs, but it would also be sensible for larger gangs of NPCs to be increasingly common compared to single NPCs as playtime goes on, as survivors will likely group up together. If one goes hostile, they all go hostile. They can act as a proper late-game threat to a character with a well stocked fortress.


#5

On the fun end, letting them use musical instruments and be able to form a band of sorts with the NPCs and Players playing together. More a RP idea, but could be useful as a sound distraction for zombie hoards too.

Here NPC, stand on this corner and play the tuba while I rob that bank! …


#6

They’re good ideas and it would be great to have them ingame, but two small points I have to make:

  1. Nearby NPCs already help with construction and bulk crafting if they have enough skill to do so, and I think the bonus maxes out with two helpers, which will make sense for anyone who’s ever tried to do something as part of a team.

  2. Most of these, or some variation of these, have already been suggested multiple times. The issue (as far as I can tell) with NPCs isn’t that the devs don’t know where to go with them, it’s that anything they do with them will be super hard. They’d basically be programming extra players with minds of their own, which is waaaaay harder than, say, adding a new piece of clothing or an enemy.

I love the band idea though. I want my own personal violinist while I work. Especially if soundpacks had actual music when instruments are played.


#7

Pooled party inventory would be a great quality of life improvement.

Just pick stuff up and someone with storage space will automatically take it. No need to trade withe every individual NPC.

It would be also great if you could control NPC equipments from a related screen


#8

Needs a bit more detail, there’s two major ways this can go, which differ wildly in implementation difficulty.

  1. NPCs have “affinity” for certain tasks, and perform them when those tasks are available.
    i.e. Lumberjacks will always go chop down trees and plane wood if possible, electronics crafters will always prefer to build electronics, etc.
    The PC still generates the list of tasks everyone pulls from.
  2. NPCs left to their own devices will try and build and improve a settlement.
    This is much more difficult to do.
    Likely commands from the player would override NPC decisions.

This is more about having “player isn’t near” type combat at all than anything else.

I think this is in?

This is the only suggestion here that’s not a week+ of work :smiley:

No problem with this in principle, but it needs to have a system in place for “stuff NPCs do when the player isn’t around” which doesn’t currently exist, and somewhat careful balancing so that you don’t just leave for a week and come back to end-game skilled NPCs. Subtext here is that the player at least has to meet their physical needs while studying, but currently NPCs don’t even have to eat.

Can you expand on this? Why do you need to constantly tell them to guard/follow?

Yea that’s a pretty amazing idea. Thinking about bolting it on to the advanced inventory code doesn’t make me happy, but it would be an amazing feature. For picking things up though, using “look around” to designate items for pickup would be pretty boss and would be much less complicated. Hrm, that would be doable even if you don’t have companions, just pre-select a bunch of items until it says your inventory will be full, then hit go and have it auto-navigate you to all of the locations to pick them up,


#9

Assistants are in, but IMO their buff isn’t all that good. For construction time there’s a hard lower bound of 40%, and for crafting time 60%.

Furthermore only up to 2 NPCs are counted toward the bonus, which while realistic for building a single door or wall, very much isn’t for building something like an entire house. (think barn raising)

Batch times don’t have any reason to have a lower bound. The NPCs are doing the exact same work the player is, 20 NPCs should be able to cook 20 meals as fast as the one player can cook one meal.


#10

Personal opinion: All this views NPCs as servants fed and watered by the player. If NPCs had personal interests and provided for their own needs they would be much more fun. Dwarf Fortress is already trying to do such things.

I’m going to see what can be done with NPC opinion code.


#11

Having NPCs make their own decisions has two major drawbacks from a gameplay perspective:

  • NPCs can and will burn through all the player’s supplies without proper oversight. While a good thing if proper checks are put in place, it’s still likely to be enough of an annoyance that players will still avoid NPCs.

  • For whatever reason (I’ll have to look into it) NPCs cause inordinately large drops in framerate just by existing. Not moving, not following the player, just them being there. Letting them run around on their own, pathfinding constantly is likely to make things much much worse.


#12

I’m going to assume this will be mitigated by having their version of a reality bubble not simulate nearly as much as the player’s in future, along with general optimization of code.


#13

For example, lets say I have four npcs sitting in my vehicle with me and run into a bunch of blobs. In this case, it isn’t very threatening, so I can allow them to leave and help slaughter the blobs, just leaving them on follow. Later on I run across a dozen hulks/shocker brutes/500 normal zombies, whatever. In this case, they will die if they follow me, so I have to talk to each one individually and tell them to guard, then shut all the curtains, then leave and go clean up the enemies or lure them away. Then if I forgot to tell them all individually to follow me again, they try to leave the vehicle as I drive, which can hurt/kill them, and will spin my tank 100% of the time. This was even more of an issue before I got them trained up to a decent level of combat skill, as three of them were harmless crafter helpers. Ideally, telling them to guard while in a vehicle would just have them stay put in their seats rather than deciding that world location was the guard point and trying to throw themselves out the back when I move. Also being able to group them up would be handy in reducing the time spent telling each individual to follow/stay.


#14

NPCs being more useful would definitely by far make having a static base more worthwhile.

Also another suggestion is assigning NPCs a ‘home’ building or at least map tile from which they’re allowed to use any items in, and perhaps a public stockpile for if they need to restock food, ect.
Perhaps allowing them to bulk cook food both at home and there if there’s an oven/fireplace/brazier, ect.

Allowing NPCs to fill empty containers with water from ‘safe’ sources is also a good idea to make NPC needs less of a pain.


#15

One problem is what targets it will chase like harmless animals maybe a guard tab to tell what to target and not target maybe add a tile “border” like 50 tile away from what it was told to guard so it will stay inside and not run off but I’m not sure if this is useful or has some problems