Difference between revisions of "Firing Accuracy Testing"
MikeTheRed (talk | contribs) |
MikeTheRed (talk | contribs) |
||
Line 2: | Line 2: | ||
Notes & Nomenclature: |
Notes & Nomenclature: |
||
+ | *'''FAT''' is short for Firing Accuracy Testing. Sorry... it just worked out that way! |
||
*'''FFA''' is Final Firing Accuracy - the quoted percent seen when about to fire a weapon. Otherwise, there is soldier FA and weapon FA, plus other factors as seen in [[Accuracy formula]] and [[Firing Accuracy]]. For this work, only soldier and weapon accuracy have been hacked/tested, unless otherwise noted. |
*'''FFA''' is Final Firing Accuracy - the quoted percent seen when about to fire a weapon. Otherwise, there is soldier FA and weapon FA, plus other factors as seen in [[Accuracy formula]] and [[Firing Accuracy]]. For this work, only soldier and weapon accuracy have been hacked/tested, unless otherwise noted. |
||
+ | *Unless otherwise noted, all testing used: |
||
− | *All testing used Autofire, unless otherwise noted. |
||
+ | **Autofire |
||
+ | **Mutons |
||
+ | **A "direct" line of fire (i.e., not a diagonal shot) |
||
+ | **A clear field (no obstacles) |
||
+ | **Same level (both soldier and Muton on ground) |
||
Line 20: | Line 26: | ||
Laser Pistol 28 40 68 |
Laser Pistol 28 40 68 |
||
− | + | If you want to [[HackerTools|hack]] files yourself, here are bytes of interest. But also see BombBloke's [http://www.strategycore.co.uk/files/index.php?dlid=470 Map Editor], which makes a lot of this cake. |
|
+ | |||
+ | "Max" means a large number; "z" ([[Media:DOS_Chars_In_MsEdit.pdf|122]]) is the largest single-keystroke value when using [[HackerTools|MS EDIT]]: |
||
[[UNITREF.DAT]], record length 124: |
[[UNITREF.DAT]], record length 124: |
||
Line 76: | Line 84: | ||
Soldier Accuracy 90% |
Soldier Accuracy 90% |
||
Weapon Accuracy 50% |
Weapon Accuracy 50% |
||
− | Final FA 45% |
+ | Final FA ''' 45%''' |
+ | |||
+ | Here are the results for FFA 45%: |
||
+ | <u>Observed Percent Hits</U> Observed Calced %Miss Model Versus |
||
+ | <u>Dist</u> <u>Min</u> <u>Ave ± SDs</u> <u>Max</u> <u>Ss</u> <u>Shots</u> <u>Tot N</u> <u>Spread</u> <u>Spread</u> <u>=Hit</u> <u>% Hit</u> <u>Observed</u> |
||
+ | 1 98.8% 99.6% ± 0.6% 100.0% 4 250 1000 0.0 |
||
+ | 2 74.8% 80.2% ± 3.3% 86.0% 8 250 2000 0.9 1.0 68% 80.5% +0.3% |
||
+ | 3 62.4% 68.0% ± 3.3% 72.8% 8 250 2000 1.3 1.5 45% 66.7% -1.3% |
||
+ | 5 53.2% 58.6% ± 2.4% 61.2% 8 250 2000 3.0 2.5 27% 55.6% -3.0% |
||
+ | 10 48.8% 51.3% ± 1.9% 53.8% 9 240 2160 5.0 5.0 14% 47.3% -4.0% |
||
+ | 20 38.0% 44.2% ± 4.2% 48.8% 8 250 2000 11.0 10.0 7% 43.1% -1.1% |
||
+ | 40 36.4% 41.5% ± 3.4% 46.8% 8 250 2000 17.0 20.0 3% 41.1% -0.4% |
||
+ | [[image:FAT-FFA45.png|right|thumb|200px|Graph of FAT Test 1]]Where |
||
+ | *'''Dist''' is distance from soldier to Muton; 1 means, soldier is directly adjacent to target (Soldier is 0, Muton is 1 away). |
||
+ | *Stats are explanatory. '''SDs''' = Standard Deviation of sample |
||
+ | *'''Ss''' = Soldiers, each of whom made '''Shots''' shots, for a '''Total N''' as shown. |
||
+ | Example: For Distance 1, 1000 shots were made (4 soldiers x 250 ammo), of which 996 were hits (Unitref[81]). Thus, Average Percent Hits is 99.6%. The single soldier who missed the most (Min Hits) had 247 hits (247/250=98.8%). Etc. Min, Max, and SDs are included as estimates of the variability I saw (and you might, too). Average is always total hits divided by total shots. |
||
+ | Then comes some model-related info, explained below: |
||
+ | *'''Observed Spread''' is how "wide" I saw the farthest misses miss the target by, to his side. In other words, if the Muton were a target on a firing-range wall, I saw misses as far as e.g. approx. 2.5 tiles to the side of the alien's center (a "radius"), which makes for a total "diameter" of 5 tiles centered on (and including) where the alien target was on the firing-range wall. Diameters are used instead of radii because they're easier in the math model. |
||
+ | *'''Calculated Spread''' is the linear model calculation estimating the observed spread. |
||
+ | *'''Percent Miss = Hit''' is, as per the model below, if 100%-FFA% of shots are "expected" to miss, but the target takes up X percent of the firing-range wall, how much of those equally-distributed misses then become "accidental" hits. |
||
+ | *'''Model Percent Hit''' is the total of pre-determined hit percent plus accidental hit percent. (It's not e.g. 45% plus 68% for distance 2 because only 55% of shots are missed; only 68% of 55% adds to 45%. But I get ahead of myself; read model details.) |
||
+ | *'''Versus Observed''' is '''Model Percent Hit''' minus '''Observed Average Percent Hits'''. |
||
+ | |||
+ | ''catching breath a second... more on the way - [[User:MikeTheRed|MikeTheRed]] 19:30, 17 November 2006 (PST)'' |
||
+ | |||
+ | = Notes = |
||
− | + | Currently (11/17/06), ideas on FA testing are being discussed in BombBloke's StratCore [http://www.strategycore.co.uk/forums/index.php?act=ST&f=22&t=5805 thread] on his great automation tools. Please drop by and jump in! |
Revision as of 04:30, 18 November 2006
This page is a scratch page re: testing how Firing Accuracy works. Results will be summarized back to relevant pages when done. Page initiated by User:MikeTheRed, but anyone is welcome to jump in. This is an informal page.
Notes & Nomenclature:
- FAT is short for Firing Accuracy Testing. Sorry... it just worked out that way!
- FFA is Final Firing Accuracy - the quoted percent seen when about to fire a weapon. Otherwise, there is soldier FA and weapon FA, plus other factors as seen in Accuracy formula and Firing Accuracy. For this work, only soldier and weapon accuracy have been hacked/tested, unless otherwise noted.
- Unless otherwise noted, all testing used:
- Autofire
- Mutons
- A "direct" line of fire (i.e., not a diagonal shot)
- A clear field (no obstacles)
- Same level (both soldier and Muton on ground)
Background
There's been a lot of conjecture about Firing Accuracy on the wiki and in X-COM forums. I couldn't recall much actual testing, so here we go.
- Soldiers can have FA from 40 to 125.
- Common weapons have the following FA:
Weapon Auto Snap Aimed Heavy Plasma 50 75 110 Std. Rifle 35 60 110 Laser Rifle 46 65 100 Std. Pistol -- 60 78 Laser Pistol 28 40 68
If you want to hack files yourself, here are bytes of interest. But also see BombBloke's Map Editor, which makes a lot of this cake.
"Max" means a large number; "z" (122) is the largest single-keystroke value when using MS EDIT:
UNITREF.DAT, record length 124: Offset Description 23 Firing Accuracy. Decreased by injury, so heal all your soldiers. 12 Current TUs - 250 for soldiers, 0 for aliens 25 Base TUs - 99 for soldiers, 0 for aliens 35 Energy Recharge - Max all 15 Current Energy - Max all 27 Base Energy - Max all 45 Energy Usage - Max all 18-22 Current Armour, F/L/R/B/U - Max all so nobody gets hurt. 29-33 Base Armor - Max for all 63-68 Fatal Wounds - Heal everybody 81 FA (hits) counter - Make sure it's zero 57 Psi strength - Aliens to 0, soldiers maxxed 37 Psi skill - Same thing 13 Current health - Set to Base Health. (You are injured if Current Health < Base Health.) 26 Base health 17 Strength - If you want to carry a lot, eat yer spinach. OBPOS.DAT, reclen 16: 0 Object type (ref. To OBDATA Row # id) - Edit ammo quantity for all weapons you're using. It's a lot easier to just e.g. set all Pistol clips (Object Type 1) to 250 than to try to figure out who's holding what. 8 Ammo quantity - Set to 250 \GEODATA\OBDATA.DAT, reclen 54: Row 0 Pistol Row 1 Pistol clip Row 34 Heavy Plasma Row 35 Heavy Plasma clip 22 Average weapon strength - Set to 1 (no damage since armor is so high) 31 Ammo damage type. 0=AP, 3=Laser, 4=Plasma. FYI (shouldn't matter) 32-34 FA, Auto/Snap/Aimed. Here's what counts 35-37 Percent TUs, for the same. Set to 1. This compares against soldiers' Base TUs and is rounded down. 1 Percent of 99 rounded down would happen to be 0 TUs :) 38 Clip size - Set to 250. Might be irrelevant after setting OBPOS, shrug. 49 Ammo boolean - Keep it set for clips
Note that because OBDATA is in \GEODATA, you have to seperately put it in any pkzip savegame backups you might be using. Also note that it's reloaded each time you start a combat for DOS X-COM, but it might not be for WinCE (GEOSCAPE and TACTICAL are one .EXE for WinCE). Be that as it may... if you e.g. set Weapon Accuracy to 100 and leave it there, then soldier FA decides your FFA.
For most testing (unless trying to watch each shot), set your Fire Speed to 6. And if you're using DosBox with DOS X-COM: Crank your CPU cycles way up, 30k or higher (Control-F12). Bullets hit practically instantaneously. (Does the WinCE version have a similar thing?)
A savegame that incorporates most everything above is Media:FAccTest1.zip. All desert dunes have been levelled so you've got clear shooting with the four soldiers in upper right.
Test 1: Benchmark
I chose a middling FFA:
Soldier Accuracy 90% Weapon Accuracy 50% Final FA 45%
Here are the results for FFA 45%:
Observed Percent Hits Observed Calced %Miss Model Versus Dist Min Ave ± SDs Max Ss Shots Tot N Spread Spread =Hit % Hit Observed 1 98.8% 99.6% ± 0.6% 100.0% 4 250 1000 0.0 2 74.8% 80.2% ± 3.3% 86.0% 8 250 2000 0.9 1.0 68% 80.5% +0.3% 3 62.4% 68.0% ± 3.3% 72.8% 8 250 2000 1.3 1.5 45% 66.7% -1.3% 5 53.2% 58.6% ± 2.4% 61.2% 8 250 2000 3.0 2.5 27% 55.6% -3.0% 10 48.8% 51.3% ± 1.9% 53.8% 9 240 2160 5.0 5.0 14% 47.3% -4.0% 20 38.0% 44.2% ± 4.2% 48.8% 8 250 2000 11.0 10.0 7% 43.1% -1.1% 40 36.4% 41.5% ± 3.4% 46.8% 8 250 2000 17.0 20.0 3% 41.1% -0.4%
Where
- Dist is distance from soldier to Muton; 1 means, soldier is directly adjacent to target (Soldier is 0, Muton is 1 away).
- Stats are explanatory. SDs = Standard Deviation of sample
- Ss = Soldiers, each of whom made Shots shots, for a Total N as shown.
Example: For Distance 1, 1000 shots were made (4 soldiers x 250 ammo), of which 996 were hits (Unitref[81]). Thus, Average Percent Hits is 99.6%. The single soldier who missed the most (Min Hits) had 247 hits (247/250=98.8%). Etc. Min, Max, and SDs are included as estimates of the variability I saw (and you might, too). Average is always total hits divided by total shots. Then comes some model-related info, explained below:
- Observed Spread is how "wide" I saw the farthest misses miss the target by, to his side. In other words, if the Muton were a target on a firing-range wall, I saw misses as far as e.g. approx. 2.5 tiles to the side of the alien's center (a "radius"), which makes for a total "diameter" of 5 tiles centered on (and including) where the alien target was on the firing-range wall. Diameters are used instead of radii because they're easier in the math model.
- Calculated Spread is the linear model calculation estimating the observed spread.
- Percent Miss = Hit is, as per the model below, if 100%-FFA% of shots are "expected" to miss, but the target takes up X percent of the firing-range wall, how much of those equally-distributed misses then become "accidental" hits.
- Model Percent Hit is the total of pre-determined hit percent plus accidental hit percent. (It's not e.g. 45% plus 68% for distance 2 because only 55% of shots are missed; only 68% of 55% adds to 45%. But I get ahead of myself; read model details.)
- Versus Observed is Model Percent Hit minus Observed Average Percent Hits.
catching breath a second... more on the way - MikeTheRed 19:30, 17 November 2006 (PST)
Notes
Currently (11/17/06), ideas on FA testing are being discussed in BombBloke's StratCore thread on his great automation tools. Please drop by and jump in!