GoCatGo: I'm not actively designing a game. I'm making an observation about how I see things implemented in games that I've played and how they are commonly implemented in others and what changes to these implementations would provide for a generally better experience. I'm coming off of/still playing Battlefield 4 currently so when discussing these terms I've been referring to them related to how they are implemented in that. This is not a discussion on how to implement ballistics modeling in games in general.
The crux of the misunderstanding here is that I am not talking about firearm mechanics from a general, realistic perspective, but rather a "this is what they mean in most FPS games" You sound like you are already familiar with these concepts but writing them out is more to help me gather my thoughts.
In real life, I'm aware that firearms have
Inherent accuracy based on the rifling of the barrel, barrel length, manufacturing deviations, gas impingement vs. piston design, and many other things I don't claim to know about. Either way, this is usually measured in MOA. A sniper rifle is generally expected to have a sub-MOA, meaning a less than 1 inch deviation at a range of 100 yards (or meters?). Something like an M16 is commonly expected to have an MOA of 4-6. This can change based on the temperature of the firearm, how worn out the barrel is, if there is a suppressor, muzzle brake but a firearm has a base accuracy rating as it comes of the manufacturing line. But the basic gist of it is that no matter how skilled of a shooter you are you're not going to make the M16 into a sub-MOA firearm. This cannot be reasonably compensated for, regardless of skill or experience.
Recoil, like you said is the result of explosions that happen inside the firearm and they way the firearm handles them. When the gunpowder is ignited by the firing pin, there is a forceful expansion of gas (explosion) that propels the projectile. The force from this gas expansion, the way the gases are vented, etc. and the way they affect recoil is dependent on the design of the firearm. Some firearms, like I think the Honey Badger PDW(?) purposefully are designed to redirect the gas in a way to push the firearm down to counteract recoil. However, a skilled, knowledgeable shooter will know the behavior of the firearm and will know how to best control the recoil. You can tense your muscles, consciously pull the firearm down and to the left (if the recoil is commonly up to the right) as firing, etc. This can be compensated for by a skilled shooter.
Other real-life factors include:
Weather: There are devices, like the ballistics computer that is often paired with the Cheytac Intervention, that can help shooters compensate for this. Shooters can compensate for this on their own, but it takes a lot of experience to be able to do it in any significant way if you're talking about anything outside of close range.
Stability of the firing position, fatigue, etc.: If you're standing and trying to shoot, your breathing, small muscle twitches, etc. are going to make the firearm move around a little as a result of your shakiness. If you're using the irons or some type of optic sight, this shakiness is going to affect your ability to aim the firearm at what you want to hit. However, you can compensate for this by tensing your muscles, holding your breath, etc. It won't reduce all of the shakiness but it will help. You can also compensate for this by just accepting that there is some shakiness and only firing when the weapon happens to be aimed at what you want to hit. If you are aiming at something, it does not matter if your aim if shaky or not, if you fire at the specific time when the firearm is lined up with a target it is going to go in the direction of the target.
As far as how these things are modeled in video games:
Halo 4: Hitscan physics. Not affected by gravity or bullet speed. Bullets are laser fast and go exactly where the firearm was aiming. There is a crosshair that is of a fixed size determined by the weapon type. The assault rifle is intended to be a close range weapon by the game designers, so the accuracy is low (large crosshair/lots of "free space" in-between the tick marks). This weapon-dependent crosshair size in this situation models the inherent accuracy of the weapon, and does not account for weapon degradation, etc. (unchanging). There is not visible recoil in this game. For a weapon like the assault rifle, the recoil is actually bundled up into the crosshair size. The longer you hold down the trigger (full auto) the bigger the crosshair gets (starting at its base size determined by inherent accuracy). The recoil is not visible to the player because the area to which the crosshair is pointing does not change. In a game that models visible recoil, the crosshair size would stay the same size and instead, the center of the screen (player view, where the crosshair is) would move around. This game does not take into account the stability of the firing position. If you are standing or crouching (no prone option in this game) it has no effect on accuracy and thus doesn't affect the crosshair size at all.
Battlefield 4: This used projectile-based physics. Each weapon has a bullet speed and bullet gravity (not sure why they have gravity changing between firearms, should be constant unless some projectiles somehow have anti-gravity thrusters :-P). You have to aim above a target that is farther away to hit what you want to hit. For a moving target you have to lead the target. Each weapon in the game has inherent accuracy, so the base crosshair size is determined by what firearm you are using. This game has visible recoil. If you are using burst-fire or full auto, the crosshair will move around based on the defined recoil pattern of the specific firearm. So if I have the crosshair centered right in the middle of an enemy's chest (let's assume he is stationary throughout this exercise), after I shoot a burst of projectiles, the crosshair will no longer be centered in the middle of his chest, it will be centered on an area two feet to the left of his head (if that is how the recoil pattern of the chosen firearm is defined). If I want any hope of hitting the middle of his chest after shooting this burst I will have to adjust my aim, re-centering the crosshair on the area I intend [want to] hit. I can compensate for this some if I know the pre-defined recoil pattern of a specific firearm. For example, the M16 may jump up 1 unit and left 2 units after each burst. Knowing this I can pull my mouse down and to right slightly while firing to reduce the effect of the recoil implementation.
This game does take into account the stability of the firing position. If you are prone and using a bipod this has no effect on accuracy. If you are prone and stationary there is a very small accuracy hit . If you are walking while standing upright then there is a moderate accuracy hit. The amount of instability/shakiness that there is as a result of movement and your stance is made apparent to you by further modifying the size of the crosshair beyond its base size, which is something that is defined according the the specific firearm. If the on-screen crosshair is on, you know this is occurring. If you opt to turn this off either via the options of by playing the "hardcore" mode like I do, there is no crosshair, and as such there is no visual indication that your aim is shaky/unstable. But, the key thing to point out here is that changing your stance or movement speed does not change what the on-screen crosshair the iron sights/optic sights are lined up. So like above, let's say I have a stationary enemy. I am crouched and looking through my irons, I have the firearm lined up/centered on the middle of the enemy's chest. If i stand up straight, look through my irons and the firearm is still lined up/centered on the middle of the enemy's chest, then I would expect that I can reasonably expect a fired shot to go in that general direction. However, this is not the case. If the deviation of a fired shot (the inherent accuracy) is 10 MOA, then the effective accuracy (MOA) when crouched is 12 MOA. When standing, it becomes 15 MOA. So basically, just by changing stance and movement speed the firearm itself becomes less accurate and more random. The problem I see with this is that by standing up, crouching, etc. the player is not changing the inherent characteristics of the firearm. Instead, they are changing the stability of the firing position. Like I mentioned at the very top of this: "However, you can compensate for this by tensing your muscles, holding your breath, etc. It won't reduce all of the shakiness but it will help. You can also compensate for this by just accepting that there is some shakiness and only firing when the weapon happens to be aimed at what you want to hit. If you are aiming at something, it does not matter if your aim if shaky or not, if you fire at the specific time when the firearm is lined up with a target it is going to go in the direction of the target."
this is something you should be able to compensate for. If I change from crouching to standing, my firearm shouldn't be/appear to be lined up with my target but start shooting bullets out at a 15 degree angle to reflect that standing up in unstable/shaky. All I was saying was that in games that model the instability/shakiness in this way, wouldn't it be better if your actual, visible aim was shaky. This would be clearly visible whether or not you used the on-screen crosshair, and a player would know at any given time the true location that the firearm was centered on/lined up with. For an example of what this looks like see here starting at around 4:40:
See how he is trying to hit targets but his aim is kind of wobbly? He compensates for it my making micro-adjustments and by holding his breath/tensing his muscles (holding the shift key be default in that game). Also,
even in Battlefield 4 itself:
Battlefield 4 only introduces this visible shakiness when the player is put in a "suppressed" state or scoped in with a high-power optic, but see how if the sight is lined up on target when he fires it actually goes where he is pointing at? Wouldn't it be infuriating for the player in the second BF4 video if the crosshair was completely stationary, but every time he fired, the bullet might hit as far as 20 feet away from the center of the crosshair? Well, in every other case this is pretty much exactly what happens. You're pointing somewhere but when you shoot the bullet hits somewhere that far beyond what would occur based on the inherent accuracy of the firearm (what the player is likely to perceive as "reasonable" since it's effect since it isn't extremely significant)
That's all I'm saying. In games that choose to model the shakiness/instability of a firing position, do you think it would be more fair/less frustrating if the induced instability was visible? Even if the aim was shaky, the player would *always* know exactly where they were *truly* aiming. There wouldn't be any of this "well I had by firearm lined up with X but the bullet didn't go anywhere close to there! What the heck?" In my opinion, you should either:
a) not model the instability/shakiness of a firing position at all OR
b) make it something that the player is clearly aware of and is able to compensate for in some way.