Hello everyone, first post ever!!!
Sooooo, I've been fiddling around the combatdefs xml and figured out (sort of) how the whole shooting mechanics work. Then I get into the game and got really annoyed that my legendary-level sniper with 20 shooting skill and a legendary sniper rifle could barely hit a muffalo at 30-ish squares after all those terrain factors (cover, lighting, etc) were taken into account.
For what I could see, the game first uses your stats to compute a number (chance to not miss per square of shot distance, lets call it A), uses it to compute the hit chance at a given distance (lets call it B) and then modifies that number B with all the other circumstance modifiers (cover, lighting, etc.)
Example (Not real, just for explaining purposes)
Peter has a shooting skill of 20, which means a 99.9% modifier to number A. Perception, manipulation and sight all are at 100% (neutral). With base 98%, number A ends up at 97.9%, and after the curve kicks in, A gets bumped up to a bit over 99%
So, he tries to shoot a muffalo standing 30 squares away. Hit chance at that distance (B) means A to the 30th power, or around 73%. Not good at all (we're talking about a Legendary Sniper, goddamit, and muffalos are the size of, well, buffalos!).
And after adding all other modifiers like lighting, cover, and the like, hit percentage goes down even more, to a paltry 25-ish percent.
Here's the problem. Against a legendary class shooter, cover should count for little (for a legendary sniper, the difference between a fully visible target or a chest-upwards visible target is of little consequence), but against a poorer shot, it might count for more. So instead of treating the covering values as penalties against the shooter, why not make them count as bonuses in favor of the target?
Explanation:
Let's say Peter has a 80% chance to hit the muffalo in question. That is to say, the muffalo has a 20% chance of avoiding the shot. A 50% cover bonus, instead of halving the shooter's to-hit chance, would instead add half again to the muffalo's avoiding chance, so in the end the numbers would look like this, Peter would have a 70% to hit the muffalo, and the muffalo would have a 30% (20% + 10%) chance to avoid getting shot.
(This would require playing around with the curve mechanism to deal with cases where the shooter has a very low to-hit chance, but it is doable)
Also, I've thought of a pretty good (I think) way to rebalance the shooting skill, by basically computing the numbers in such a way that the shooter has an even chance of hitting a target at different ranges. It goes like this:
At 0 skill, a shooter has an even (0.5) chance of hitting a target at point-blank range.
At 1 skill, a shooter has an even chance of hitting a target 5 squares away.
At 5 skill, a shooter has an even chance of hitting a target 10 squares away.
At 10 skill, a shooter has an even chance of hitting a target 20 squares away.
At 15 skill, a shooter has an even chance of hitting a target 40 squares away.
At 20 skill, a shooter has an super-high (95%) chance of hitting a target 40 squares away.
Compute a good-fitting curve for those points on the 0-20 range and voila. (MatLab is perfect for that)
Opinions, anyone?
The base game has horrible hit detection and changes bullet paths based on any cover in the way and the percentages you're mentioning have
very little effect on the in-game behaviour of projectile weaponry. There's always a chance for projectiles to "Miss wildly" which is a straight up
dice roll whether a bullet will fly the wrong way, this is most noticeable when aiming at a wall a single tile in front of the shooter then seeing
bullets make impossible turns to avoid hitting the wall.
CombatRealism (attempts to) fix these problems by making projectile paths unbiased towards cover, "wild miss chance" and crazy stuff like
that. Gun skill also influences things in a different way with good shooters being capable of handling simulated recoil on automatic weaponry.