I ran some tests just now, with the help of DrSchlock, to test CM effectiveness and if it jibes with computed values, as I was told that the computed values look too high to be accurate. We basically took two bombers loaded with hunters and CM and ran 48 tests in each round to get the spoofing rate.
Note that CM effectiveness is calculated as a comparison of two random numbers, one between 0 and the missile resistance and the other between 0 and the countermeasure strength. So any test of this nature can only hope to land close to the calculated numbers and hopefully on both sides and in the general ballpark. To get really close to the calculated numbers will take tens of thousands of samples. Here we have under 300 samples.
Also note you typically have time to drop two CMs vs hunter, we only tested one-drop chance.
So the results:
Hunter 2 vs CM1
Calculated value: 50% spoofing chance (75% with two drops)
Tested value: 46%
Hunter 2 vs CM2
Calculated value: 66.7% spoofing chance (88.9% with two drops)
Run 1 Tested value: 75%
Run 2 Tested value: 83%
Run 3 Tested value: 70%
Hunter 3 vs CM3
Calculated value: 70.4% (91.2% with two drops)
Run 1 Tested value: 63%
Run 2 Tested value: 82%
Countermeasure effectiveness
-
Spunkmeyer
- Posts: 2013
- Joined: Fri Jun 27, 2003 7:00 am
- Location: Contact me regarding: CC, Slayer and AllegWiki.
I reviewed the relevant code and manually did the math; here are the notes:Spunkmeyer wrote:QUOTE (Spunkmeyer @ Feb 1 2011, 03:56 PM) I ran some tests just now, with the help of DrSchlock, to test CM effectiveness and if it jibes with computed values, as I was told that the computed values look too high to be accurate.
Code: Select all
float chaff = ((IchaffTypeIGC*)pet)->GetChaffStrength();
float missile = pmissile->GetMissileType()->GetChaffResistance();
// community core 11 values
// chaff1 = 1.5
// lrm1 = 1.5
// chaff2 = 2.25
// lrm2 = 1.5
// chaff3 = 3.375
// lrm3 = 2
//The following is equivalent to random(0, chaff) > random(0, missile)
float cm = chaff * missile;
// cm1lrm1 = 2.25
// cm2lrm1 = 3.375
// cm2lrm3 = 4.5
// cm3lrm3 = 6.75
float f = (chaff > missile)
? (cm - 0.5f * missile * missile)
: (0.5f * chaff * chaff);
// f1 = 1.125 (50% of cm1lrm1)
// f2 = 2.25 (66% of cm2lrm1)
// f3 = 2.5 (55% of cm2lrm3)
// f4 = 4.75 (70% of cm3lrm3)
if (random(0.0f, cm) <= f)
{
//Missile lost lockclarification:
lrm 1 vs cm 1 => 50%
lrm 2 vs cm 1 => 50%
lrm 1 vs cm 2 => 66%
lrm 2 vs cm 2 => 66%
lrm 3 vs cm 2 => 55%
lrm 3 vs cm 3 => 70%
QUOTE TurkeyXIII@ACE (all): when I realised how close I was I panicked and sprayed everywhere[/quote]