CleverRaven / Cataclysm-DDA

Cataclysm - Dark Days Ahead. A turn-based survival game set in a post-apocalyptic world.
http://cataclysmdda.org
Other
10.32k stars 4.14k forks source link

More options for swapping control between NPCs and player #69927

Closed Merikona closed 8 months ago

Merikona commented 10 months ago

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

90 days to swap control to a NPC is too long of a time scale when most games don't even last 90 days, especially for newer players. I love that we have the option outside of debug menu to swap now, but in its current state, there's really little reason to, and I really don't want to intentionally break my characters' legs just to have an excuse to hasten the transition process.

Solution you would like.

What if, after a NPC has joined your faction, a timer starts. Once that NPC has been with you for say, a month or two, you're familiar with each other to the point where you can give each other 'orders' for what to do, meaning you can swap freely between those NPCs that have stayed with you for longer than a threshold duration. If there is a hostile on the screen, you won't be able to swap (so no micromanagement on the battlefield), or make it still restricted to faction camp board.

Another idea is to have different roles and a hierarchy in a faction. Your starter NPC is the head honcho and you can always swap to them and have them give out orders to the other NPCs. But now you also have for instance, a crafting team with its own leader and pawns. The crafting team leader can be assigned and can give orders to other crafters, but not to the scavengers team. The scavengers team, similarly, has their own leader who can give orders to other scavengers, but not to the crafting team. This way, you keep the people you've invested time into to build up crafting proficiencies/skills safe, while your scavenging team can focus on combat skills/weakpoint proficiencies. You can freely swap between NPCs, but giving orders is restricted to those ranked higher up and those where it makes sense for them to be giving out orders.

Describe alternatives you have considered.

Standing in a tub of acid until my legs break. Mothering some dermatiks. Roasting my legs on a campfire.

Additional context

No response

fairyarmadillo commented 10 months ago

I don't see any reason to restrict swapping at all. There's nothing special about the starting character that should make them the only member of their group capable of independent action.

If you really want to limit it somehow, just make it only doable at the faction camp board, so that you can't do it in combat. But even then, NPC AI is never going to be at the level where I'm not occasionally opening debug mode to control my buddy and make him stop doing something ridiculous, no matter how much it improves. That's just a reality of video game AI.

Merikona commented 10 months ago

I think Renech intended to limit swapping because you can only swap to the leader of your faction, and it doesn't make sense for the leader to change every other day. That's why my second proposal was to give a hierarchy to the faction, so that you aren't actually swapping leaders, and having your new recruit giving out orders to the veterans. Renech seemed receptive to this suggestion on Discord, but said it would be difficult to implement. That's why I proposed an alternative, which was to be able to freely swap between characters who have been in the faction for longer than a predefined period of time.

Open to other suggestions as well, of course.

fairyarmadillo commented 10 months ago

That sounds like I'm being told who my characters are and what they think in my own story. My characters don't have a hierarchy and no one's the leader, they're just friends doing the best they can. If anything, the rules support my version the most as my characters have high trust and value scores.

If someone wants a top-down command structure for their game, they can roleplay that. I don't see any reason to force that on everyone else, it's not as though it makes logical sense in either game design or simulation.

fairyarmadillo commented 10 months ago

I know the original design wasn't your call, but given that a player can roleplay that their guys are lovers, family members, a hippie commune, a D&D group, a chimera mutant who has threatened to kill a bunch of people if they don't do what she says, a democracy, etc. this definitely seems like a place where we should not be getting in people's way with restrictive and prescriptive social mechanics.

Merikona commented 10 months ago

My characters don't have a hierarchy and no one's the leader, they're just friends doing the best they can. I don't see any reason to force that on everyone else, it's not as though it makes logical sense in either game design or simulation

Yea, that's the way I think of my characters as well, and I'm always a proponent of giving more freedom to the player. The 'C'hat menu sometimes makes things you ask your companions to do sound like a command that they can't refuse. They won't refuse to do those commands unless their morale is too low or it's the specific case where you're prying into their personal background. You could ask them to strip naked or take drugs, etc. which doesn't seem like something they would want to do unless you were asking from a position of authority. Nonetheless, I think that's just a limitation of the engine. NPCs are not complex enough yet to have their own desires, and to make a poorly done system would be worse than to make none at all.

fairyarmadillo commented 10 months ago

that's just a limitation of the engine. NPCs are not complex enough yet to have their own desires, and to make a poorly done system would be worse than to make none at all.

That's why I don't think codifying any kind of hierarchy is the solution. The solution is simply to remove the invisible walls which are there for no reason.

Merikona commented 10 months ago

Okay, we're on the same page here. So what's next? I'm not familiar with how suggestions get incorporated into the game. Also don't want to step on any toes here because the relevant PR is not mine.

fairyarmadillo commented 10 months ago

If you have the coding knowledge, you could try submitting a PR that works the way you think it should, otherwise you can only hope someone takes this issue and runs with it.

I have a bunch of things I'm working on, so I can't take a swing at it currently myself, at least not in the near future.

I-am-Erk commented 10 months ago

Generally the argument against swapping characters at-will is that it is likely to lead to people micromanaging their characters rather than fixing/testing the AI, which was a weaker argument before, but now that I'm actually trying to fix that AI I think it's a pretty strong point. When I originally suggested this in #53523, I recommended we allow player-NPC swapping from the faction camp as long as no enemies are nearby. I don't think there needs to be a significant (or any) time limit on a switch like that, personally. There's absolutely nothing wrong with playing multiple characters in a game, in fact I think it makes the on-death switch stronger if you choose to play that way. It's only in combat that this should be avoided.

I'd be open to the time limit being significantly reduced, to like a day or two, or removed altogether. In the long run this would be more interesting if the NPC change represented a change of group leadership, and perhaps you can't always swap NPCs if some of them don't want to run the group or aren't trusted by the others.

Along with this though we should look into giving the original Avatar some unique dialogue, just for fun.

fairyarmadillo commented 10 months ago

An always-available switch at the board makes plenty of sense to me.

RenechCDDA commented 10 months ago

I'd be open to the time limit being significantly reduced, to like a day or two, or removed altogether. In the long run this would be more interesting if the NPC change represented a change of group leadership, and perhaps you can't always swap NPCs if some of them don't want to run the group or aren't trusted by the others.

I have no strong objection to a lowered timer in the current state, but since leadership goes along with player control I originally set it to a longer period where a transition in leadership makes more sense.

But, since we don't (yet) have things like... peoples' opinion of you changing because you did(/did not) transfer leadership in a way they want, it's probably fine to lower the cooldown.

It is a simple one-line json change if that's what we want to do.

https://github.com/CleverRaven/Cataclysm-DDA/blob/5ce96c66e8b5f6020c757501770af76e1d497fef/data/json/npcs/missiondef.json#L1006

github-actions[bot] commented 9 months ago

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.