Join GitHub today
GitHub is home to over 36 million developers working together to host and review code, manage projects, and build software together.
Sign upGun max range is capped #18299
Comments
mugling
added
the
Aiming
label
Sep 12, 2016
This comment has been minimized.
This comment has been minimized.
|
Also the interface - finding targets at that distance could get painful |
This comment has been minimized.
This comment has been minimized.
|
Interface isn't really a big problem for as long as we have target cycling. |
This comment has been minimized.
This comment has been minimized.
This is an interesting idea, but how? |
This comment has been minimized.
This comment has been minimized.
|
Current algorithm is like this:
New one would go like this:
The difference would be that the "normalization" would be done on the missed distance rather than the angle. As a result, the misses would be much less "square". |
This comment has been minimized.
This comment has been minimized.
|
What led to the 30-tile cap, exactly? I recall that before there was no cap, the only constraint was the reality bubble on paper (and in practice, the visual range even in broad daylight). |
This comment has been minimized.
This comment has been minimized.
|
@DangerNoodle see the vertical part of the curve in the original PR |
This comment has been minimized.
This comment has been minimized.
|
I see. Peculiar. |
This comment has been minimized.
This comment has been minimized.
|
I think @Coolthulhu gave a better summary of the problem elsewhere. In short we need to rework the curve but that's a very math heavy job. Removing the cap doesn't fix the problem it just adds a further one. |
This comment has been minimized.
This comment has been minimized.
|
Understandable, in that case. I would not be certain of how to resolve the math either. |
This comment has been minimized.
This comment has been minimized.
It does fix it, just that it adds a new one afterwards. |
This comment has been minimized.
This comment has been minimized.
|
The rough plan I have in mind is resolve |
This comment has been minimized.
This comment has been minimized.
|
Recoil and range don't depend on each other too much. |
This comment has been minimized.
This comment has been minimized.
|
I'm a long way along with recoil so I'd prefer to finish that unless you have something ready? |
This comment has been minimized.
This comment has been minimized.
|
I think it should count as milestone for 0.D . Maybe it is better to go for easy solution and add a hard low cap on dispersion? |
Coolthulhu
added this to the 0.D milestone
Jan 24, 2017
This comment has been minimized.
This comment has been minimized.
Lasers at in-game distances effectively have no innate dispersion and their sight dispersion is more the fact that humans cannot stay perfectly still. If you're going to do a low hardcap on dispersion, please write the note in a way that states you're doing it for balance reasons specifically. Or don't do hardcaps on gun stats, just softcaps that require advanced tech to overcome. Someone with fully bionic arms and spine ought to have advanced stabilization algorithms to eliminate sway. That, or just add a huge mutated chicken and tie the gun to its head. |
This comment has been minimized.
This comment has been minimized.
Sway is just one component of dispersion. There are others, not so easily compensated for, such as barrel vibration, requiring essentially per-ammo-type accurizing to fully overcome. As for lasers: we could keep those hardcapped on range with handwave explanation like "blooming" or "loses focus". This would make them different to ordinary guns by giving them low range, but amazing accuracy within that range. |
This comment has been minimized.
This comment has been minimized.
In that way it can be done with:
Maybe setting hard cap on dispersion even not necessary in that case. Also there is one more thing. Complex solution may be not worth it at all in that case. If I understand it right - we are going to dance around 10% or less of chance to hit for end game sniper just to make it less than 100%. If that is the case then it is definitely not worth it. |
This comment has been minimized.
This comment has been minimized.
|
My proposed end goal for handling the gap between irl ranges and in game
ranges is to express all item properties as actual irl MoA (roughly their
intended goal now), and adding an explicit scaling factor to the range
code. That scaling factor may be non-linear to handle issues like all
pistols having precisely the same range.
This approach would be far more future proof than tweaking individual gun
ranges to meet immediate balance goals.
Not directly pertinent but some nice context:
I settled on minutes of arc (MoA) for the fundamental unit of dispersion
both because it's the standard in firearms circles and because it seemed
small enough for our needs. 0 dispersion in game effectively means "sub
MoA", i.e. < 1. To ground that number 1 MoA is roughly 1 inch at 1,000
yards.
|
This comment has been minimized.
This comment has been minimized.
Wiki says that 20 MoA is the upper bound for self defense handguns. 20 MoA at distance 60 (say, tiles) is ~0.35. So any handgun which would barely qualify for self-defense would count as amazing sniper rifle in game. |
This comment has been minimized.
This comment has been minimized.
|
Sounds like the grazing hit system needs to be updated to handle sup-tile accuracy. |
This comment has been minimized.
This comment has been minimized.
|
It has sub-tile accuracy. All the problems would be much worse if it didn't. |
This comment has been minimized.
This comment has been minimized.
Varghus
commented
Feb 3, 2017
•
|
1 Minute of angle is 1"of dispersion at 100 yards and 10" at 1000 yards. 6 MOA at 100 yards is considered "minute of bad guy" any more than that is missing a 12" silhouette more than hitting. |
This comment has been minimized.
This comment has been minimized.
|
I tried to fix it, but I encountered a problem and needed to close: |
kevingranade
added this to Blockers
in 0.D Release
Mar 2, 2017
This comment has been minimized.
This comment has been minimized.
|
Random size note, @Varghus is correct, I added an extra 0. We don't need a "maximum range for given accuracy" function in the game code, just in a unit test situation or similar (though that sucks because of the random element, so run a bunch of trials...). The ideal is to scale dispersion such that shorter-ranged firearms will be effectively useless beyond their intended effective range, then you don't need to do anything funny, it's just trig. The only difference between my proposal and @Coolthulhu's various dispersion capping proposals is we don't have guns with nonsense stats in the json, just one documented method somewhere that converts from "irl dispersion" to "in game dispersion". Also if we do something that extends effective maximum range (such as expanding the reality bubble or allowing weapons to fire at targets outside the reality bubble), we only need to adjust one thing to ratchet up everythings' effective range to match the new game-imposed maximum range. Also it makes things like comparing thrown weapon dispersion with firearm dispersion easier, we have rough real-world stats on both and we want them to agree with each other, at least proportionally. |
This comment has been minimized.
This comment has been minimized.
It's really useful to avoid having the game get spoiler-heavy. Ranged combat system is rather complex and depends a lot on player knowledge (rather than character knowledge) to properly optimize. I'd rather keep the function until it's obvious there is no good way around removing it. |
Coolthulhu commentedSep 12, 2016
Known and all, but I'm just leaving it out as a reminder that arbitrary hard cap isn't the right way to do it.
A reality bubble cap is necessary, 30 tiles cap isn't.
Ideas:
missed_bywith a normal distribution rng.