CleverRaven / Cataclysm-DDA

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

Remove %-chance-to-hit information from the aiming interface. #64849

Closed RAldrich closed 1 year ago

RAldrich commented 1 year ago

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

This is a suggestion regarding the aiming user interface, not the aiming / to-hit calculation itself.

The firearms system is designed so that a character with 0 Marksmanship skill is capable of hitting their target 100% of the time, so long as the target is within a certain range and enough time is spent aiming. This creates the odd situation where, in the hands of a skilled player, a character who has never touched a firearm before can pick one up and proceed to never miss a single shot - ever. This makes guns feel and act more powerfully than they should be in the hands of a total novice character.

I would like it if a low marksmanship character felt and played differently than a high marksmanship character.

Fundamentally, I think the current situation is a result of exposing perfect information of the to-hit probability to the player in the aiming interface. All you have to do is pass time until the bar hits 100% at which point your character's precognition tells them that they can now pull the trigger. As a corollary, we don't allow the player to even attempt to aim beyond the maximum range at which a hit is possible (based on the accuracy, given that you can extend it by adding a scope). I don't see how a zero marksmanship character would know exactly how far is "too far away to hit".

Solution you would like.

Remove the detailed %-chance-to-hit information from the aiming interface. Possibly replace it with a categorical descriptor of how confident the character is that the current shot will hit. This confidence category could be made more or less accurate based on the character's Marksmanship skill.

Allow the aiming reticule to move past the gun's maximum range (and render a corresponding "no way will I hit that" confidence).

Leave everything else exactly as-is.

Describe alternatives you have considered.

Other mechanisms for making low skill marksmanship characters miss occasionally, such as a creating a ceiling on accuracy that's tied to skill (and then leaving the detailed information visible as it is now). Or doing both.

Additional context

I expect this may not go-over super well, as most other game areas that have categorical descriptors also display the detailed number values involved (e.g. pain, limb damage effects) and people don't like having information taken away. On the other hand, I think it's worth considering, as we don't expose perfect outcome probabilities during melee combat.

PatrikLundell commented 1 year ago

I'm opposed to the suggestion because it penalizes inexperienced players and may inconvenience experienced ones. Experienced players good at picking up and remembering meta information can use that meta information to play their inexperienced characters as per the current system, while inexperienced players are left in the dark (and also makes it harder for them to pick up the meta information). This is especially bad for range, as the game ranges are severely reduced compared to real life ones (for implementation reasons), so it's very important for players to get the feedback of what the reduced range actually is (again, experienced players may count tiles to use their meta information, which is tedious at best).

Leonkoithara commented 1 year ago

Instead of hiding information from the player I think it would make more sense to increase % to hit for experienced marksman thereby: a low marksmanship character WILL FEEL and PLAY differently than a high marksmanship character. Which I think is already being done.

Terrorforge commented 1 year ago

I'm inclined to agree, actually. The current aiming system is very gamey, it just makes you feel like an infallible terminator the moment you pick up a gun. In particular, the perfect information combined with the ridiculously precise control you have over exactly how much aiming you do effectively lets you use guns as melee weapons. It's functionally impossible to get overrun except by hulks or running out of bullets, because as soon as an enemy is close enough to pose a threat, you can just squeeze out shots with 100% guaranteed accuracy every 0.5 seconds at no risk.

And idk, maybe attacking the problem from that direction is a better solution? You could cap maximum accuracy based on gun skills. maybe. And/or just ditch the whole "do 1/10 of a second worth of aiming" mechanic. It's pretty weird, when you think about it.

PatrikLundell commented 1 year ago

I'm fine with reducing the maximum accuracy for low skilled players, and I'm also fine with making it impossible to (continue to) aim at point blank range (i.e. you can hold your fire until you can see the white in their eyes, but any additional shots have to be taken without aiming, and that aimed shot has to be taken at whatever level it ended up at when the enemy ended up in your face), with the aiming function being blocked out at that point.

natsirt721 commented 1 year ago

It seems like the issue you have isn't that the player has too much information, its that guns are too good at close range. It would only take a new player a few mags to figure out that shooting things at minimum possible range will always result in hits, and at that point you still have the same issue.

I think that a good change might be to reduce accuracy for firearms inside a certain range, based on the length of the barrel - something like what Rimworld does for its firearms. For example, with a 9mm pistol and no skill, the best you might be able to do is 75% accuracy at 3 tiles, and 50% at point blank. With a few levels, you can bring that up to 100% accuracy at 3 tiles, and 75% at point blank. A master might be able to land guaranteed solid hits out to 8 or 9 tiles, and still be able to do grazing hits at longer ranges. Ideally, the installed sights (and other mods) should affect the sweet spot for each weapon as well - sure, that sniper scope on your BLR lets you land headshots at 15 tiles, but you're going to but nearly useless against targets at 2 tiles because of it.

This solves a few issues:

  1. Most guns won't provide guaranteed hits for an unskilled character, regardless of aim or range
  2. Increasing skill will have a more interesting effect on gameplay, going from "the range at which I can land guaranteed hits has gone up a bit" to "wow, I can land guaranteed hits at all now". Nothing to something feels better than 'something good' to 'something slightly better'.
  3. Weapon choice actually means something - trying to fight in tight spaces with a hunting rifle would be pretty much impossible because due to its reduced short-range accuracy and long aim time, if a target pops up at 3 tiles away its going to be on you before you can get a decent shot off.

But it retains a few favorable aspects of the current system:

  1. Players still have a good idea about what their chances of landing a hit for any given shot are. The dual concepts of 'more aim = more accuracy' and 'close range shots = less accuracy' are intuitive enough even for unskilled characters, and players can see the effects of aim and range clearly.
  2. Characters can still fine-tune their aim for longer range shots or shots against closing targets - you can't really convey the intuitive nature of shooting a target without providing that sort of information and giving the player fine control over the shot.
  3. No gamey changes to the mechanics when dealing with point blank targets a-la 'you have to keep shooting without aiming'. There are already costs for aiming at point blank against a target - namely that the target is making attacks against you.

Notably, this will also make fast melee enemies much more dangerous - they will spend less time in the sweet spot ranges, and if they can get inside your sweet spot your options for killing them drop considerably (and we now have reason to do the old "whip out the sidearm and squeeze off a few shots at close range" thing).

If you wanted to go really in-depth you could add proficiencies to increase the effective skill at close and long range ('Close Quarters Battle', 'Long Range Marksmanship') trained by landing hits well outside or inside a gun's sweetspot.

tl;dr

  1. Make gun accuracy fall off at close range, establish a range 'sweet-spot' for each gun proportional to the length of the barrel
  2. Tune gun accuracy curves so that most guns have a sub-100% chance to hit in their sweetspot range before skill is applied
  3. Character skill increases the accuracy across the range, either flat or proportional to the base curve for the gun
  4. Gun mods affect the sweet spot, so using the best sights you have is not always optimal.
  5. Bonus: add proficiencies for landing very close or very long shots to allow further specialization.
VReaperV commented 1 year ago

because as soon as an enemy is close enough to pose a threat, you can just squeeze out shots with 100% guaranteed accuracy every 0.5 seconds at no risk.

Yes, you can burst fire at a target right in front of you and most of your shots will hit. That's how guns work in real life.

trying to fight in tight spaces with a hunting rifle would be pretty much impossible because due to its reduced short-range accuracy and long aim time

That is already true. If you tried to fight multiple enemies with a bolt-action rifle in a tight space you'll most likely be dead because you can't shoot them fast enough. There's no reason you shouldn't be able to hit a target from ~3 meters away.

Terrorforge commented 1 year ago

Yes, you can burst fire at a target right in front of you and most of your shots will hit. That's how guns work in real life.

I'm not talking about burst fire, I'm talking about perfectly tapping several enemies with exactly the number of bullets required to kill each one, taking perfect, minimal fractions-of-a-second time to aim just long enough to ensure 100% accuracy every single time without fail. That is not "how guns work in real life", that is John Wick shit.

natsirt721 commented 1 year ago

What about scaling aim time as well as accuracy with skill level? Then you actually need skill to fire off shots quickly with any level of accuracy, regardless of the gun used. The unskilled can still use guns to reasonable effect against single targets as long as they have enough time to line up a shot before they're in danger, but are considerably less effective against groups.

irwiss commented 1 year ago

I started compiling a response here with specific source code references but this just grows too large so here's a rough rundown; most (of the ones grounded in reality) mechanics mentioned are already implemented, you can poke in ranged.cpp around line 1045 downwards or in character.cpp around line 880 downwards, specifically; skills scaling aim speed, accuracy scaling, optimal scope selection is already in effect. Aim is also interrupted at "close range" but only when monsters actually hit you, as opposed to video game tropes of close range target curving spacetime to make bullets miss.

If you don't want to aim in 10 move intervals you can aim in "confidence levels" which you can set up in F menu, these are already scaled to avatar skill too; IRL you can aim in any "interval"s and shoot at any time, specific interval is a UI clutch due to the game not being an arcade one running at double digit fps.

For "unskilled" aiming at close or any other range - make pistol fingers and "aim" at center of mass of something human sized in your room at leisurely pace - you're likely to finish in half the time it takes to aim at human sized target at 5-10 tiles distance in game and end up more accurate than a 0 skill survivor.

As far as "professional" shooters at close range - aimed shot every 0.5 is really lowballing it, the classic airsoft meme can demonstrate a low-recoil scenario, you can (may be) source similar footage with real firearms

If some kind of data points were presented that could be used to tune some parameters like the weight of skill modifiers. Without anything numeric to support the claims made this issue ends up being "this isn't how I like it", which is also valid but unless you submit PR for changing to an exact "how i like it" it's unlikely to gain traction, and even then depends on maintainer decision for merging

Terrorforge commented 1 year ago

classic airsoft meme

I feel like this one proves my point. My man is firing off like 15-20 rounds to "kill" four people. Imagine how insane it would've been if he did all that with exactly one shot each, and you start to see why I think the in-game scenario is kind of ridiculous.

e: I think the main factor there is actually the "confirmation" step. in CDDA, you can aim, fire once, and then see if that kills the enemy and re-evaluate based on that. In a real-life scenario, you have to keep shooting because you don't have time to wait and see if the first one hit.

then again, I guess our zombies are mainly the slow, shambling kind, so maybe you do?

irwiss commented 1 year ago

That isn't a gun issue either - it's up to the monsters having absolute HP values (the only exception is devourers I think) and a definite "0" when it signals "yep he's dead jim", there's no stragglers, play dead ai, inertia running, damage weakening etc, melee is exactly the same (and even slightly worse) in this regard

worm-girl commented 1 year ago

then again, I guess our zombies are mainly the slow, shambling kind, so maybe you do?

Zombie brute, hulk, hunter, snapper, garghoul, winged zombie, raptor, roaches, wasps, mi-go etc etc are all very common enemies which are faster than humans. I don't think this justification should be allowed unless we want to flex aim times to creature speed more than we do now (you lose a bit of aim% when an enemy moves, but not much).

Also, 70 moves is not very slow, the player often walks at that speed or slower. I would say the basic zeds are moving like Resident Evil 4 ganados, not Night of the Living Dead shamblers. You miss often enough in Resident Evil games and that feels right

Overall I just feel like the gun systems are too generous to the player, making the game too easy if you just want to shoot everything, which you usually have plenty of ammo for. These monsters killed the army and all the police, so why is it so simple for an untrained nobody to wipe them out?

That isn't a gun issue either - it's up to the monsters having absolute HP values (the only exception is devourers I think) and a definite "0" when it signals "yep he's dead jim", there's no stragglers, play dead ai, inertia running, damage weakening etc, melee is exactly the same (and even slightly worse) in this regard

Zombies don't have any fear, pain, or tactical intelligence. They just go until their bodies are unable to continue. Damage weakening or playing possum might be neat for more intelligent enemies though.

Inertia running, like the horror movie thing where someone's head gets blown off and they take another step or two, isn't real afaik. When people are killed, their nervous systems stop sending signals to their muscles and they drop like rocks. Our zombies use hotwired biological processes to move, so I would expect the same from them, unless you were fighting one with a redundant brain or second heart or something.

I do not think hiding damage numbers and enemy HP bars would be fun for anyone, except maybe as a trait/challenge mode.

VReaperV commented 1 year ago

You miss often enough in Resident Evil games and that feels right

If you miss in an FPS/TPS that's on your video-game skills, and is not really conencted to actually shooting a firearm.

Overall I just feel like the gun systems are too generous to the player, making the game too easy if you just want to shoot everything, which you usually have plenty of ammo for.

Guns are supposed to be effecient and deadly... Also, if you think you're getting too much ammo, you can always change item spawn chance or enemy resilience/speed.

These monsters killed the army and all the police, so why is it so simple for an untrained nobody to wipe them out?

Army and police died because of blob psychosis. The player is just less affected/not affected by it.

VReaperV commented 1 year ago

I feel like this one proves my point. My man is firing off like 15-20 rounds to "kill" four people. Imagine how insane it would've been if he did all that with exactly one shot each, and you start to see why I think the in-game scenario is kind of ridiculous.

Except they're not behaving at all like zombies and he is shooting while moving.

VReaperV commented 1 year ago

I'm not talking about burst fire, I'm talking about perfectly tapping several enemies with exactly the number of bullets required to kill each one, taking perfect, minimal fractions-of-a-second time to aim just long enough to ensure 100% accuracy every single time without fail. That is not "how guns work in real life", that is John Wick shit.

I think that's more the result of the game being turn-based. I think it's more of lining up your sights with the target taking x seconds, and the time you wait in-game represents how well you lined-up your sights. You are aiming just long enough to have your sights and the target properly lined-up, but for the purposes of UI it happens in set increments.

worm-girl commented 1 year ago

If guns just magically hit everything you shot at in real life, professionals probably wouldn't spend hundreds of hours on tactical and marksmanship training. There also wouldn't be a market for flashlights and low-light optics if everyone could see well enough in dim light or total darkness to hit what they were aiming at.

The army did indeed encounter undead and lose to them. There are many map specials and snippets depicting this. Psychosis was responsible for the initial panic and confusion and the first wave of undead, after that, loss was inevitable. Zombies are not helpless punching bags, and 0 skill characters being able to effortlessly John Wick their way out of any situation with near-perfect firing accuracy is neither good game design nor is it realistic.

If some kind of data points were presented that could be used to tune some parameters like the weight of skill modifiers. Without anything numeric to support the claims made this issue ends up being "this isn't how I like it", which is also valid but unless you submit PR for changing to an exact "how i like it" it's unlikely to gain traction, and even then depends on maintainer decision for merging

In #64990 I shared some statistics about close-quarters deadly force scenarios where police shot at people. Even in extremely close quarters, where the subject could not have been taking cover and was (usually) trying to overpower or stab the officer, the firing accuracy was quite low, often around 35%. This is much, much lower than what player characters typically see even against types of zombies which are faster, stronger, and more aggressive than humans, and police are trained professionals, not some rando who found a gun during the apocalypse.

@natsirt721 argued that the statistics aren't directly applicable here and I have to agree, but they are probably the most viable starting point for brainstorming that we're going to get, as there isn't going to be data on firing accuracy vs a bunch of charging chimpanzees or something.

To be clear: I am not advocating for a 35% accuracy rate, just a system that demands that you actually get some skill before you turn into John Wick.

VReaperV commented 1 year ago

If guns just magically hit everything you shot at in real life, professionals probably wouldn't spend hundreds of hours on tactical and marksmanship training.

They aren't training to shoot zombies.

There also wouldn't be a market for flashlights and low-light optics if everyone could see well enough in dim light or total darkness to hit what they were aiming at.

Which is the case in the game too.

The army did indeed encounter undead and lose to them. There are many map specials and snippets depicting this.

I don't think there any specials that suggest that they died while in a similar situation as a player is usually in? If you were in the middle of a base surrounded by zombies on all sides, lots of survivors can easily die from that too. Can't say about snippets.

Zombies are not helpless punching bags, and 0 skill characters being able to effortlessly John Wick their way out of any situation with near-perfect firing accuracy is neither good game design nor is it realistic.

They aren't being John Wicks though, and there's plenty of situations where those characters would die.

In https://github.com/CleverRaven/Cataclysm-DDA/issues/64990 I shared some statistics about close-quarters deadly force scenarios where police shot at people. Even in extremely close quarters, where the subject could not have been taking cover and was (usually) trying to overpower or stab the officer, the firing accuracy was quite low, often around 35%. This is much, much lower than what player characters typically see even against types of zombies which are faster, stronger, and more aggressive than humans, and police are trained professionals, not some rando who found a gun during the apocalypse. @natsirt721 argued that the statistics aren't directly applicable here and I have to agree, but they are probably the most viable starting point for brainstorming that we're going to get, as there isn't going to be data on firing accuracy vs a bunch of charging chimpanzees or something.

If you tried shooting a zombie in the game without aiming your accuracy would, in fact, be pretty low, especially against faster enemies.

worm-girl commented 1 year ago

You already tried to make that last argument on the other issue and you were already shown to have misunderstood the data. Half the incidents in the first report did involve aiming, and the article referencing it came to the conclusion that in many of these situations, there simply isn't time to aim properly. So aiming doesn't confer 100% accuracy and it shouldn't be as easy as it is.

And I feel like perfectly maneuvering around the room and delivering precise and devastating shots in rapid succession with no wasted ammo or mistakes is pretty John Wick-y. Hell, even he gets kicked around a lot.

Anyway this is going in circles. There's no universe where it's a good thing that a 0 skill character with no armor can pick up an m4 and effectively become invincible. Zombie media typically does not depict zombies this way (it is usually depicted as a very bad idea to pull out a gun in the middle of a horde), and no even remotely analagous real world data supports it. There are plenty of great ideas for rectifying the issue here in the thread as well as some supporting data, so if someone's inclined to get a PR going, they should already have all they need to get started.

VReaperV commented 1 year ago

and the article referencing it came to the conclusion that in many of these situations, there simply isn't time to aim properly

So they didn't have time to aim properly. There's evidently enough time to aim in-game. When you don't have enough time, i. e. vs a faster enemy, your shots are much less accurate.

There's no universe where it's a good thing that a 0 skill character with no armor can pick up an m4 and effectively become invincible.

They're far from invincible though. One unfortunate grab — dead, a bunch of zombies showed up from around the corner and surrounded you — dead, fast enemy got close and started ripping you to shreds — dead, etc.

And I feel like perfectly maneuvering around the room and delivering precise and devastating shots in rapid succession with no wasted ammo or mistakes is pretty John Wick-y. Hell, even he gets kicked around a lot.

I disagree because this is done in close quarters against a relatively weak enemy. It's not that hard to not waste ammo from a few meters away while taking several seconds for each shot. If you tried this with a default character against a faster/harder to hit enemy you can easily die.

Zombie media typically does not depict zombies this way (it is usually depicted as a very bad idea to pull out a gun in the middle of a horde), and no even remotely analagous real world data supports it.

This depends on how close CDDA's zombies are supposed to be to zombies from other media. I'd assume you mean either attracting a bunch of zombies with gunshot sounds or taking on a lot of enemies while standing in the middle of them?

github-actions[bot] commented 1 year 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.