Seems nothing has changed. No matter how we are approached on this forum it always ends up with assumptions, flaming and 'nice' statements trying to bash INF in one way or another and to always let RO look better than INF.
I actually like the sound of Yoshiro's posts who actually tries to let both sides have their point of view and let people freely decide which mod/game they think is better.
Sure we are on the RO forums here, but this doesn't mean that only RO has the right to get nice comments and INF is always the ****ty stuff that noone wants to play and noone ever played.
I don't want to put salt in anyones wound here but I have to say that Ramm did not did a very good job here in this thread by quoting the flamers and supporting them in a pretty much nonprofessional way.
Anyway, back to the actual topic or better the penetration system...
A basic penetration system is something that you can get going on any Unreal engine within a couple of minutes. It is based on projectiles that fly around and hit stuff, no matter if the flight path is a ballistic curve or not. This has nothing to do with the actual penetration feature nor has any oh so complicated hit detection system even if this is a per-poly detection.
All you need - as described on many forums, wikis and many mailing lists for a couple of engines, not only Unreal - is an engine function that lets you 'trace' from one point to another returning a hitlocation if something - no matter what - was between these two points. And every Unreal engine features this simple trace function.
In addition to this you need a way to relocate your projectile or to spawn a new copy of it at any location you want if you cannot simply reposition the original. This is a basic function available in any engine out there too, including the Unreal engine of course.
Now the actual codes depend on how 'good' your penetration system should be and how much performance you want to put into. Basically none of the systems eats up performance in a noticeable way even if thousands of projectiles would fly around cause only a few of them would actually hit something at the same time if at all. So you can even give your codes some more checks to make the system more realistic by including material checks and stuff alike.
The actual penetration is a simple calculation. Each projectile 'type' gets a value of how far it can penetrate into a specific material depending on the caliber, the weapon it was fired from and similar parameters. The material that was hit then decreases or even increases this maximum 'distance'.
Now all you need to do for a fully working penetration system that only has a little flaw that I will describe in the next few sentences too is to actually let it virtually travel further at the time it hits something.
You have the projectiles velocity, means you have its actual rotation and flight direction due to the velocity being a vector. You then simply normalize the velocity vector and multiply it by the maximum 'distance' value described above, add it to the hitlocation and then make a trace from this new location back to the original hitlocation. This way you will get a new hitlocation on the backside of the object the projectile actually hit, IF the penetration 'distance' was enough to let the projectile travel thru the object/wall.
Then all you need to do is to set the location of the projectile to this new location on the objects backside and let it fly on its flight path further.
The little flaw of this system is that if your maximum penetration distances get pretty high, then this simple 'from the maximum position check' back to the original hitlocation can actually travel thru several objects at once if ie. the wall that was hit is pretty thin. Normally this doesn't matter that much especially if you do not have weaponry in game that is able to penetrate a massive concrete wall. But if you do, then you can simply split up the 'backside checks' in several steps till the maximum penetration distance was reached. So you end up with a small number of traces max, if the possible penetration distance is pretty far and the object that was hit is actually this thick and not very thin.
If you now add a modifier to the penetration values that reduce the possible damage value of the projectile and the 'next' maximum penetration value each time the projectile managed to travel thru an object then you get a pretty stable penetration system using a very simple way that doesn't eat up performance even if dozens of or even a hundred projectiles would actually hit a penetrateable material at the same time.
In addition to the penetration check you can check the hitangle. Depending on the angle plus the hit material you can let the projectile ricochet or not.
These two little features combined give you a stable penetration feature for any projectile based mod/game, no matter how complex the actual ballistics used are.
Take care.