DarklightGames / DarkestHour

Darkest Hour: Europe '44-'45
https://store.steampowered.com/app/1280/Darkest_Hour_Europe_4445/
68 stars 21 forks source link

RPG43 anti-tank grenade is not very effective especially when used properly #934

Closed AndrewTheel closed 6 years ago

AndrewTheel commented 6 years ago

When I was researching the RPG43 grenades and coded them, I discovered it was awkward and very dangerous, but actually effective. Veterans had to risk getting close to the tank, so they could throw the grenade up into the air over the tank to have it fall and impact on the top of the tank.

They did this for 3 reasons: 1) There is less armor thickness on the top armor of all tanks 2) It was more likely the grenade would hit the tank at the desired angle 3) They could stay in cover when throwing the grenade

Throwing directly was risky because the grenade might not orientate properly and thus not go off. It is hard to throw an objective with a specific orientation and even more difficult to do so with distance/speed as a goal.

Here is a diagram of my thoughts on using the grenade (the different methods, using common sense). rpg43_throwingmethods

My desire was to have it so if players throw it up into the air and it came down on top of the tank (which takes skill), it would always result in a kill on smaller tanks and heavy damage on large tanks.

However, as it stands now it is the opposite. Throwing it up into the air to have it come down results in zero or very little damage. Because of how the grenade is coded, direct throws always result with explosions and doing damage.

I suggest we implement bonus damage for top armor impacts and debug the top armor impacts because currently they don't seem to work.

AndrewTheel commented 6 years ago

Like my little image I made? 😄

AndrewTheel commented 6 years ago

The code starting on line 208 with if (ROPawn(Wall) == none) in class DH_RPG43GrenadeProjectile is a bit messy and I think the culprit to why indirect (top armor) hits (which do impact) don't actually do any damage. If it hits the side, it never runs the ShouldPenetrate() function, but if it hits the top it does, which is why I think that bit is the culprit or the ShouldPenetrate() function.

AndrewTheel commented 6 years ago

Did some more testing, discovered the RPG43 AT grenade does 0 damage to every tank if it lands on top-armor. This is straight up a bug then.

dynamittt commented 6 years ago

Hi guys haven't been here for quite some time, Theel is kinda right that the RPG 40 Grenade could be used to be thrown on top of the tank, while this is more "true" for late Soviet cumulative (shaped charge) AT grenades (RPG 43 is also a shaped charge grenade) But the late post-war soviet AT grenades based on the RPG 43 used kinda different "chute" design, that would slow the grenade more. So I think that the 'standard' throwing mechanic should be lleft (the 'flat' 'horizontal-like' trajectory), while a secondary throwing option for 'lobbing" the grenade upwards could be added. This would of course make it possible to hit tanks weak top-armor as Theel mentioned, while it is worthy to mention that the grenade has 70-75 mm of armor penetration(according to various sources) capability(while some even claim up to 90 mm), which is completely enough for most tanks, given the fact that the thrower would always try to flank the tank and hit it from the side/rear. If I search some Russian weapon databases and contact few people and could come up with even more detailed info.... Also the so called 'parachute' I mentioned is actually a stabilizer(consists of simple strings): it is said to be used to orient the warhead in the direction of throwing, not to slow it down. (while on some later post-war soviet shaped charge AT nades the stabilizer was significantly bigger and would slow down the grenade quite a bit, and it DID look like an actual parachute), but then again they used completely different tossing technique, where the thrower would throw it upward and forward......

Image is nicely done, but incorrect: the nade would fly in the direction of the velocity vector. It would not rotate randomly like in your pic. (so the top left portion of the diagram is correct) There could be slight misalignment right after the throw, but the string stabilizers on the RPG 43 deploy almost instantly. And you cannot throw the grenade without deploying the string stabilizers, because all the safeties,safety pin and impact detonator safety release gimmicks are "linked" to the mechanism. I will not go into detail on how the safety of the grenade works, if you are interested you can read more here:

http://spec-naz.org/armory/grenades/ruchnaya_protivotankovaya_granata_rpg_43_/

So you cant throw the nade "directly" without having the handle 'cap' ejected, and the stabilizer strings along with it. Except if you take apart the piece and modify the mechanism, removing most of the safeties and I am pretty sure no one would do that in the field... Throwing is done only from a trench/solid cover, from the crouched position, in order to avoid metal fragments/pices of the sheet metal body of the nade/tak's armor to hit you. Personal opinion: I think another viable way of throwing out in the open would be from the prone position, similar to anti-personnel grenades. immediately after throw the soldier would go prone and look down (so that the top of his head protected by the helmet would face the direction of the blast.

Also is it forbidden to pick up non-exploded grenades from the ground and throw them again, since after the initial throwing the striker-release safety is gone, and if you trip/fall or whatever, can cause the nade to detonate in your hand.....

dynamittt commented 6 years ago

As for coding, a simple calculation of the angle at which the nade hit the armor plate using HitNormal should be enough? The bigger the angle (from 90 degrees aka 'normal') the lower the penetration value?

AndrewTheel commented 6 years ago

Fixed.