Feature #2411

Muzzle Velocity set by a COMBINATION of ammo/magazine AND Gun

Added by mr.g-c about 6 years ago. Updated over 2 years ago.

Status:Assigned Start date:06/30/2009
Priority:Normal Due date:
Assignee:- % Done:

0%

Category:Config
Target version:-
Affected ArmA II version:Please select... First affected ArmA II version:
Reproduced by another DH user:No Single / Multi Player?:
I am using some Mods:No BIForumURL:
I am using: NGUrl:
Reproducible for you:No WIKIurl:
Related to content of DLC:

Description

+ Problem: +
Arma2 as already did Arma1, makes a terrible mistake by not differencing between barrel-lengths for correct muzzle velocities.
Muzzle-Velocities are in Arma-Series specified by the "Initspeed" inside the Magazine-class definitions (2 oddities at once) in configs.
This makes very big Problems for the most played Mods like ACE, since they have to define for each Magazine-class, some sub-classes and have to use odd workarounds to replace players equipment by script to compensate this.

RL-Examples:
In RL when you fire one and the same Round-type (example M855 ball) from a M16 with a 20" barrel and then from a M4 (14.5" Barrel) makes a dramatic difference in effects on Humans, Materials, Penetration, bullet-drop, etc. etc. - especially on greater distances.
Many Test and Reports from recent conflicts have shown that the M16 is far superior at distances above 250-300m where the M4 starts to really lack of Proper Penetration/manstopping/Wounding potential. M16s provide these effects in a good way up to 500m, while M4s only around 300m -even though you use the same round. This is because the MuzzleVelocity is much lower when fired from the shorter barreled M4 compared to the M16.

+ Suggested Solution: +
I have thought really much about how to best solve this with the lowest amount of work for BIS, here my Suggestion (i will take the Stanag-mag + M16 for that example):

1. Leave Initspeed inside the magazine-class definition with a "default-speed", for instance like currently "930" for 930m/s, or simply leave it UNTOUCHED like it is currently. This ensures that when no overriding muzzle-velocity is entered, it uses the default specified in the magazines config.

2. When adding the magazines into the magzines-class definition inside a weapon-class, let it be a "array" with "magazinetype, bulletspeed".
Example:

Default:

 1 class M16_base: Rifle
 2     {
 3         magazines[] =
 4         {
 5             "30Rnd_556x45_Stanag",
 6             "30Rnd_556x45_StanagSD",
 7             "20Rnd_556x45_Stanag",
 8             "30Rnd_556x45_G36",
 9             "100Rnd_556x45_BetaCMag",
10             "30Rnd_556x45_G36SD" 
11         };

New Suggested Way:

 1 class M16_base: Rifle
 2     {
 3         magazines[] =
 4         {
 5             ["30Rnd_556x45_Stanag", "980"],
 6             ["30Rnd_556x45_StanagSD", "340"],
 7             ["20Rnd_556x45_Stanag", "980"],
 8             ["30Rnd_556x45_G36", "980"],
 9             ["100Rnd_556x45_BetaCMag", "980"],
10             ["30Rnd_556x45_G36SD", "340"]
11         };
12          };
13 class M4A1: M16_base
14 {
15 magazines[] =
16         {
17             ["30Rnd_556x45_Stanag", "880"],
18             ["30Rnd_556x45_StanagSD", "310"],
19             ["20Rnd_556x45_Stanag", "880"],
20             ["30Rnd_556x45_G36", "880"],
21             ["100Rnd_556x45_BetaCMag", "880"],
22             ["30Rnd_556x45_G36SD", "310"]
23         };            
24 
25 };

If there is for instance no numeric-value defined, the weapon/muzzle should take the values from the weapon/muzzle it inherited from.

So you see, both the M16 and the M4 class use the same ammunition but in the array is the muzzle-velocity defined that this particular magazine has with this particular Weapon.
Of course the Technology behind it that the engine understands that must be changed too, but it shouldn't be that real hard i guess.
Of course the entered Values


Related issues

related to ARMA2 Community Issue Tracker - Feature #11417: Magazine-Weapon Interface config class Assigned 06/22/2010
related to ARMA2 Community Issue Tracker - Feature #11383: Magazines should be proxies within weapon P3Ds. Assigned 06/21/2010

History

Updated by kju about 6 years ago

  • Assignee deleted (Suma)

Updated by INNOCENTandCLUELESS almost 7 years ago

Excellent workaround suggestion, voted for it

Updated by KingHomer almost 6 years ago

Just saw that. This is a real good point g-c you have there. This is also very necessary for weapons like AK74, RPK etc.

Updated by mr.g-c almost 6 years ago

Thanks you two, as i said i have thought much about it and i do believe for Suma or someone else @BIS this would be rather easy to realize (not that i have much knowledge about real game-engine programming, but....).

Another thing, lets say we have that above suggested possibility, do you think it would be possible to simulate "advanced" ballistics, so when a bullet has left the supersonic-speed and then is in subsonic-speed part, as normally the air-friction in game engine, or in real life the "loss of speed", must be greater then, than at supersonic speed.

Updated by alef almost 6 years ago

  • Status changed from New to Assigned

Updated by alef almost 6 years ago

  • Due date set to 11/02/2009

Updated by Fireball over 5 years ago

  • Affected ArmA II version changed from 1.02.58134 to 1.04.59026
  • Reproduced by another DH user set to No
  • CPU set to Please specify!

Updated by Fireball over 5 years ago

  • Due date deleted (11/02/2009)

Updated by kju about 5 years ago

  • Affected ArmA II version changed from 1.04.59026 to Please select...
  • Size of OS swap file set to Please specify!

Updated by DarkWanderer over 4 years ago

Suggestion:
Combine with #11417 and make it that way:

class CfgMagazineInterfaces {
    class 556_STANAG_Interface {
    };
};

class CfgWeapons {
    class Rifle {
        velocityModifier = 1.000;
    };
    class M4 : Rifle {
        magazineInterfaces[] = {"556_STANAG_Interface"};
        velocityModifier = 0.935;
    };
};

class CfgMagazines {
    class 30Rnd_556x45_STANAG {
        magazineInterface = "556_STANAG_Interface";
        initspeed = 948;
    };
};

Updated by BigDawgKS over 4 years ago

Wouldn't the initSpeed be more appropriately defined in the CfgAmmo type? When I think of magazines, I think of something that holds and feeds ammo to the weapon; nothing there that determines the bullet velocity. Of course the velocityModifier on the weapon I believe makes more sense than specifically defining the velocity for each weapon/magazine combination (IMO that is very inflexible).

I support the idea, but I don't think the proposed implementation is the best solution.

Updated by DarkWanderer over 4 years ago

Wouldn't the initSpeed be more appropriately defined in the CfgAmmo type?

I thought of that too, but it will create a mess for old configs, IMO - becasue of existing addons and old A2 configs.

Updated by mr.g-c over 4 years ago

Thats why i suggested it the way i did... for the lowest amount of work for BIS. I'm to say it gentleman, but your discussion about the "way" of achieving this suggestion, is at least for BIS and the current working titles - obsolete.
Though a complete redesign, for nearly all weapon related things, from scratch would be HIGHLY recommend for any new Title (ie Arma3).

Updated by kju over 4 years ago

  • Operating system deleted (Vista 64 bit)
  • Graphics card deleted (HD4890 1GB Tocxic)
  • Graphics card driver version deleted (9.6)
  • CPU deleted (Please specify!)
  • Audio card deleted (Please specify!)
  • Size of OS swap file deleted (Please specify!)

Updated by DarkWanderer over 4 years ago

but your discussion about the "way" of achieving this suggestion, is at least for BIS and the current working titles - obsolete.

I think you've misunderstood my point.

Also available in: Atom PDF