BallisticCoefficient

  • Please make sure you are familiar with the forum rules. You can find them here: https://forums.tripwireinteractive.com/index.php?threads/forum-rules.2334636/
  • Weve updated the Tripwire Privacy Notice under our Policies to be clearer about our use of customer information to come in line with the EU General Data Protection Regulation (GDPR) rules that come into force today (25th May 2018). The following are highlights of our changes:


    We've incorporated the relevant concepts from the GDPR including joining the EU and Swiss Privacy Shield framework. We've added explanations for why and how Tripwire processes customer data and the types of data that we process, as well as information about your data protection rights.



    For more information about our privacy practices, please review the new Privacy Policy found here: https://tripwireinteractive.com/#/privacy-notice

Greenh0rn

FNG / Fresh Meat
Nov 15, 2010
69
41
0
Hello i ask for a little help. How can i caluclate BallisticCoefficient. Another thing how the original Ro calculates penetration values i mean

PenetrationTable(0)=11
PenetrationTable(1)=11
PenetrationTable(2)=10
PenetrationTable(3)=10
PenetrationTable(4)=10
PenetrationTable(5)=9
PenetrationTable(6)=8
PenetrationTable(7)=8
PenetrationTable(8)=7
PenetrationTable(9)=6
PenetrationTable(10)=6

how can i calculate which how many cm or mm?
 

Greenh0rn

FNG / Fresh Meat
Nov 15, 2010
69
41
0
The ballistic coefficient is most often calculated and published by the ammunition manufacturer, when talking about modern commercially available ammunition. In the case of Red Orchestra, the manufacturer information isn't available, so it is computed using a formula. This wikipedia page tells you all about calculating BCs.

http://en.wikipedia.org/wiki/Ballistic_coefficient[url]http://en.wikipedia.org/wiki/Ballistic_coefficient[/URL]


I already try this formula and it isnt working for ro. for testing i calculated out the Tigers BC whit 3 type of ammo but non of the calc get near the values in game.. i think it is calculated from other formula
10,2/(0,04*88)=2,84 but in the script they wright 3,3
 
Last edited:

[TW]Wilsonam

VP, Tripwire Int.
Oct 17, 2005
4,061
2,618
0
62
Roswell, GA
www.tripwireinteractive.com
Also keep in mind that ballistics calcs use a whole bunch of "constants", one of which is the Bc. We start with what we can find in terms of Bc, plus shooting tables, then retro-fit our own Bc from the data. The reason is that we have simplified some of the equations down, where we don't care about variations in air pressure or temp, for instance. And (for performance reasons) we tend to simplify down as far as possible - if we introduce errors in single-figure percentages, those are so small that we can live with them for the sake of improved performance on the calcs. Just consider a map with 4 tanks, 2 MG42s, couple of DPs, 5 PPSh all in action at once - that is over 200 rounds PER SECOND being introduced to the environment. Thats a lot of ballistic calcs going on at once!
 

Greenh0rn

FNG / Fresh Meat
Nov 15, 2010
69
41
0
Also keep in mind that ballistics calcs use a whole bunch of "constants", one of which is the Bc. We start with what we can find in terms of Bc, plus shooting tables, then retro-fit our own Bc from the data. The reason is that we have simplified some of the equations down, where we don't care about variations in air pressure or temp, for instance. And (for performance reasons) we tend to simplify down as far as possible - if we introduce errors in single-figure percentages, those are so small that we can live with them for the sake of improved performance on the calcs. Just consider a map with 4 tanks, 2 MG42s, couple of DPs, 5 PPSh all in action at once - that is over 200 rounds PER SECOND being introduced to the environment. Thats a lot of ballistic calcs going on at once!
THX for anwering i understad (i know this is the reason why the mg 42 isnt shooting real 1200 rpm) but i just need the calculation method in RO because in Revenge of the Turul i am the guy who made the tank penetration values but sadly i cannot calculate out the BC because the original formula isnt good so i think your team use their own formula for that and i asking for that formula because, i dont find any informations in the scrips how to calculate out it. for the hand weapons i got datas but because the original Bc isnt good it isnt working right. So please tell me how RO calulates BC
 

Alan123

FNG / Fresh Meat
Jan 4, 2011
46
5
0
steamcommunity.com
Hello,

My understanding of the numbers you posted in the table above is as follows:

PenetrationTable(0)=11 (penetration at 0m is 11 armour points)
PenetrationTable(1)=11 (Penetration at 100m is 11 armour points)
PenetrationTable(2)=10 (Penetration at 200m is 10 armour points)
PenetrationTable(3)=10 (and so on and so on)
PenetrationTable(4)=10
PenetrationTable(5)=9
PenetrationTable(6)=8
PenetrationTable(7)=8
PenetrationTable(8)=7
PenetrationTable(9)=6
PenetrationTable(10)=6 (it looks as though a penetration over 1000m is treated as being as for 1000m and a constant penetration of 6 armour points)

Each tank has a armor factor for front side and rear. I believe the numbers above in the table are armor factor numbers and not ballistic coefficients, but I could be wrong.

My understanding is that 1 armour point is approximately 10mm of armour equivalent at 90 degrees in reality. eg 11 armour points is 110mm of armour.

Regards

Alan.
 

Alan123

FNG / Fresh Meat
Jan 4, 2011
46
5
0
steamcommunity.com
Hallo,

The tankcannonshell.uc data file for each weapon looks like this: (each one has of course different numbers but the format is almost always the same, this one is taken from the Russian BT7, note that the values are way overblown, no 45mm could ever penetrate 110mm of armour 11 armorfactor in real life)


//===================================================================
// BT7Cannon
//
// Red Orchestra Source - William Miller
// Copyright (C) 2007 Tripwire Interactive, LLC
// edited 2011 by OLt Witti
//
// BT7 tank cannon shell class
//===================================================================
class PzD_BT7CannonShell extends ROTankCannonShell;

defaultproperties
{
MechanicalRanges(0)=(RangeValue=-5.000000)
MechanicalRanges(1)=(Range=250,RangeValue=-40.000000)
MechanicalRanges(2)=(Range=500,RangeValue=-70.000000)
MechanicalRanges(3)=(Range=1000,RangeValue=-145.000000)
MechanicalRanges(4)=(Range=1500,RangeValue=-205.000000)
MechanicalRanges(5)=(Range=2000,RangeValue=-255.000000)
MechanicalRanges(6)=(Range=2500,RangeValue=-265.000000)
OpticalRanges(0)=(RangeValue=0.480000)
OpticalRanges(1)=(Range=250,RangeValue=0.496000)
OpticalRanges(2)=(Range=500,RangeValue=0.512000)
OpticalRanges(3)=(Range=1000,RangeValue=0.542600)
OpticalRanges(4)=(Range=1500,RangeValue=0.588500)
OpticalRanges(5)=(Range=2000,RangeValue=0.644100)
OpticalRanges(6)=(Range=2500,RangeValue=0.705300)
bMechanicalAiming=Wahr
bOpticalAiming=Wahr
PenetrationTable(0)=11
PenetrationTable(1)=11
PenetrationTable(2)=10
PenetrationTable(3)=10
PenetrationTable(4)=10
PenetrationTable(5)=9
PenetrationTable(6)=8
PenetrationTable(7)=8
PenetrationTable(8)=7
PenetrationTable(9)=6
PenetrationTable(10)=6
ImpactDamage=70
BallisticCoefficient=0.700000
SpeedFudgeScale=0.500000
Speed=45806.000000 (divide this by 60 you get metres per second)
MaxSpeed=45806.000000
}

Near the bottom, three lines up is a listing for Ballistic coefficient, my guess is that this is where RO calculates the ballistic coefficient, in other words the curve at which the shell travels through the air once fired.

Hope this is what you are looking for.

Cheers

Alan
 

Greenh0rn

FNG / Fresh Meat
Nov 15, 2010
69
41
0
thx but i know where i can find the BC in the scripts, i know what is BC, i know how in reallife it is been calculated but my problem is that the guys who made ro the used their own formula for calculating it out, and i dont find any data how to calculate out the BC in RO. So for to be sure i need the RO BC calculation formula
 

Alan123

FNG / Fresh Meat
Jan 4, 2011
46
5
0
steamcommunity.com
Hallo,

I read somewhere in a similar thread that they just playtested the BC by trial and error until it "looked" right, there was not a lot of science to it. I would link to where I read that, it was from one of the game development team, however I cannot find it.

The BC number itself just describes a mathematical curve, with 0 being a straight line and anything else +ve being a sine curve.

One could try and use the actual BC from the weapon itself and see how that looked ingame, there are plenty of good websites and books with weapon tables in them that describe the flight curve of the shell.

It is something I am looking at doing myself.

Cheers

Alan
 

Alan123

FNG / Fresh Meat
Jan 4, 2011
46
5
0
steamcommunity.com
Have a look at a file called ROBallisticProjectile.uc and other projectile related uc data in the some folder, I think this is what you are looking for.

Cheers

Alan.
 

Greenh0rn

FNG / Fresh Meat
Nov 15, 2010
69
41
0
this is the only thing what they wright there
BallisticCoefficient; // Ballistic coefficient for this bullet

I really want somebody from TWI who can answer this because as i read the fourms this is not just my problem
 
Last edited:

Alan123

FNG / Fresh Meat
Jan 4, 2011
46
5
0
steamcommunity.com
this is the only thing what they wright there
BallisticCoefficient; // Ballistic coefficient for this bullet

I really want somebody from TWI who can answer this because as i read the fourms this is not just my problem


Hello,


My one has lots more info in it, here is a copy of the text:

//=============================================================================
// ROBallisticProjectile
//=============================================================================
// Projectiles that do true ballistics calculations. Calculations
// are done in native code for this class and its subclasses when
// the physics are set to PHYS_Projectile
//=============================================================================
// Red Orchestra Source
// Copyright (C) 2005 John Gibson
//=============================================================================

class ROBallisticProjectile extends Projectile
abstract
native;

//=============================================================================
// Variables
//=============================================================================

var float AmbientVolumeScale; // Amount to scale this projectiles ambient sound

// Constants
const ScaleFactor = 18.4; // 18.4 unreal units = 1 foot in our game.
const ScaleFactorInverse = 0.0543; // 1/Scalefactor

// Behavior
var() float BallisticCoefficient; // Ballistic coefficient for this bullet
var float BCInverse;

// Debug
var bool bDebugBallistics; // Set to true to turn on ballistics debugging
var float FlightTime;
var Vector OrigLoc;
var Vector TraceHitLoc;

var bool bTrueBallistics; // If this is true do the true ballistics calcs in native, instead of standard projectile calcs
var bool bInitialAcceleration; // If this is true and bTrueBallistics is true, the projectile will accellerate to full speed over .1 seconds. This prevents the problem where a just spawned projectile passes right through something without colliding
var() float SpeedFudgeScale; // Scales the velocity by this amount. Used to keep the proper ballistic trajectory while making the projectile phyically move slower
var() float MinFudgeScale; // When bInitalAcceleration and bTrueBallistics are true, the projectile will accellerate from MinFudgeScale up to SpeedFudgeScale over InitialAccelerationTime seconds
var() float InitialAccelerationTime;// Time in seconds it takes for the shell to get up to the full SpeedFudgeScale
//=============================================================================
// Functions
//=============================================================================

//-----------------------------------------------------------------------------
// PostBeginPlay
//-----------------------------------------------------------------------------

simulated function PostBeginPlay()
{
local Vector HitNormal;
local Actor TraceHitActor;

Velocity = Vector(Rotation) * Speed;
BCInverse = 1 / BallisticCoefficient;

if (Role == ROLE_Authority && Instigator.HeadVolume.bWaterVolume)
Velocity *= 0.5;

if (bDebugBallistics)
{
FlightTime = 0;
OrigLoc = Location;

TraceHitActor = Trace(TraceHitLoc, HitNormal, Location + 65355 * Vector(Rotation), Location + (Instigator.CollisionRadius + 5) * vector(Rotation), true);

if( TraceHitActor.IsA('ROBulletWhipAttachment'))
{
TraceHitActor = Trace(TraceHitLoc, HitNormal, Location + 65355 * Vector(Rotation), TraceHitLoc + 5 * Vector(Rotation), true);
}
// super slow debugging
//Spawn(class 'RODebugTracerGreen',self,,TraceHitLoc,Rotation);
log("Debug Tracing TraceHitActor ="$TraceHitActor);
}
}

simulated function HitWall(vector HitNormal, actor Wall)
{

if (bDebugBallistics)
{
log("BulletImpactVel = "$VSize(Velocity) / ScaleFactor$" BulletDist = "$(VSize(Location - OrigLoc) / 60.352)$" BulletDrop = "$(((TraceHitLoc.Z - Location.Z) / ScaleFactor) * 12));

if (Level.NetMode != NM_DedicatedServer)
Spawn(class 'RODebugTracer',self,,Location,Rotation);

// ROPawn(Instigator).BulletImpactVel = VSize(Velocity) / ScaleFactor;
// ROPawn(Instigator).BulletFlightTime = FlightTime;
// ROPawn(Instigator).BulletDist = VSize(Location - OrigLoc) / ScaleFactor;
// ROPawn(Instigator).BulletRefDist = VSize(TraceHitLoc - OrigLoc) / ScaleFactor;
// ROPawn(Instigator).BulletDrop = ((TraceHitLoc.Z - Location.Z) / ScaleFactor) * 12;
}

}

defaultproperties
{
AmbientVolumeScale = 1.0;
BallisticCoefficient=0.3 // just a fallback
Physics=PHYS_Projectile
TossZ=0.0
bTrueBallistics=true
SpeedFudgeScale=1.0
MinFudgeScale=0.025
InitialAccelerationTime=0.1
bInitialAcceleration=true

Gru
 

Alan123

FNG / Fresh Meat
Jan 4, 2011
46
5
0
steamcommunity.com
And this is why:

"var bool bTrueBallistics; // If this is true do the true ballistics calcs in native, instead of standard projectile calcs
var bool bInitialAcceleration; //"

It is done in the native code not the script files.

Cheers

Alan