gomker

[1.3.1] BDArmory Continued - Public BETA of v1.1.0 - Damage and Armor Overhaul

Recommended Posts

The is the Open Beta for the next release of BDArmory Continued. This next release (version 1.1) will be a complete refactor of the damage model, ballistics and explosive force calculations.
Our goal was to model realistic values for ballistics, bullet penetration explosive damage and force.  All formulas used to calculate these values are based on real world values and physics formulas with balancing to account for game play. 

Beta Release #1 : https://github.com/PapaJoesSoup/BDArmory/releases/tag/v1.1.0

Fixes

Too many to list - see this tag in get for issues being corrected and comprehensive lists : https://github.com/PapaJoesSoup/BDArmory/labels/Fix Pending Release


New Features

Main issue tracking changeshttps://github.com/PapaJoesSoup/BDArmory/issues/307
 

Damage is no longer tied to heat or temperature of the part,  a completely new "Hitpoint" health system has been created.  By default all parts will have their Maximum Hitpoints calculated based on part area and density

Documentation : https://github.com/PapaJoesSoup/BDArmory/wiki/1.2.1-Hitpoints-&-Armor

For Modders: you can override these values by using the following in your part config or MM patches

MODULE
{
    name = HitpointTracker
    ArmorThickness = 120
    maxHitPoints = 100000
    ExplodeMode = Never
}

Example baseline values for balancing : 10,0000 hitpoints for Tank Hulls, 100,000 hitpoints for larger boat hulls.

Armor

The Armor and penetration system has been completely redone, no longer needing custom layers or parts. All parts will have a default value of 10 "Armor" units to approximate default thickness of metal composed of the part.

  • Armor can be changed in the VAB or by the same method above with a MM patch. Any part can have Armor if you choose, allowing for more flexibility.
  • There will still be dedicated Armor panel parts for those who choose a different build path.
  • Armor will stop bullets and limit damage depending on the amount present and bullet mass and velocity

Bullets
Documentation https://github.com/PapaJoesSoup/BDArmory/wiki/1.2.2-Bullet-Configuration

  • Bullet configurations now have real world values for caliber and mass. 
  • Ballistic coefficients are calculated in code based on these values for a more accurate drag model
  • Most damage values for weapons have all been moved to the bullet configurations. This will now make weapons more consistent with same ammunition.
    BULLET
    {
        name = 30x173HEBullet
        caliber = 30
        bulletVelocity = 1180
        bulletMass = 0.3880
        //HE Bullet Values
        explosive = True
        tntMass = 0.3104
        blastPower = 2  //deprecated, use tntMass, left in for legacy support
        blastHeat = 3.7 //deprecated, use tntMass, left in for legacy support
        blastRadius = 2.5 //deprecated, use tntMass, left in for legacy support
        apBulletMod = 3 //not yet implemented
        bulletDragTypeName = AnalyticEstimate
        
    }


Weapon Configurations

All damage values are now calculated from the bullet configuration. All other value are deprecated.
ammoName and bulletType are required

        MODULE
        {
        name = ModuleWeapon
        ....
        ammoName = 30x173Ammo
        bulletType = 30x173Bullet
        ....

        
Decal Bullet Hits

Bullet strikes currently have two sizes for (90mm below / above)
This is a very early feature and has much work left to be done (i.e. mapping bullet decals to curved surfaces properly)


Explosive Damage
@jrodriguez to provide more details on the changes of the explosive detonation code

  • New value of tntMass is replacing all other values for explosive in bullet configuration.
  • For Missiles the following will need to be added, where tntMass should be the approximate real world value of explosive mass the missile contains.
    MODULE
    {
        name = BDExplosivePart
        tntMass = 27.15
    }

    
Compatible Mods

SpannerMonkey has graciously allowed me distribute his pre-release updates that are compatible with the Open Beta. Please do not comment on any other thread but here about issues with these parts. Feedback should be provided here in relation to BDA testing only.
Do not merge any of these , complete re-installs

 

Thanks

Test / QA Crew borrowed from @SpannerMonkey(smce)

@Azimech

@TheKurgan

@Wrench Head

@XOC2008
 

Other QA and Mod Makers : @Acea @lancefoxcia @harpwner


The Standard Warnings and Notes

  • Use at your own risk, this is a beta build an will have issues. We recommend you test in an isolated copy of KSP. It is possible you could corrupt craft or saves, no guarantees. 
  • Always completely delete  / replace the entire BDArmory directory
  • Delete your partDatabase.cfg & ModuleManager.ConfigCache before loading if updating the new build
  • Module manager is required
  • New / Daily builds will be posted at https://github.com/PapaJoesSoup/BDArmory/releases 

 

We hope you'll enjoy these new features, and looking forward to an interesting open beta phase with lots of insights & discussions!
Your BDAc team

@Papa_Joe @SpannerMonkey(smce) @DoctorDavinci @gomker @jrodriguez @TheDog

 

Boring demo 

Beta Release #1 : https://github.com/PapaJoesSoup/BDArmory/releases/tag/v1.1.0

Edited by gomker
  • Like 12

Share this post


Link to post
Share on other sites

It should go without saying that reporting any issues requires the KSP log for tracking down the problem. Be as descriptive as possible so we can re-create the issue.

Some known work in progress items

  • Bullet decals floating around edges, not mapping to textures correctly
  • Number of hitpoints assigned not updating in VAB correctly, may differ from what is shown on vessel launch
  • Overall balancing of damage and FX tuning

Share this post


Link to post
Share on other sites

Much thanks to you Gomker for allowing me to help test these changes to BDA. Testing some of these changes has made available to me some of thee COOLEST stuff I have ever seen in this game.

Cheers!!

OH and feel free to spamm the discord channel with new test builds... I honestly do LOVE it!!! I download them the second I see them :)

  • Like 2

Share this post


Link to post
Share on other sites

A question regarding new ballistic system - would targeting in space and at large velocities work better? Current targeting can't hit relatively stationary orange fuel tank at 500 meters with a 5000m/s projectile gun.

Share this post


Link to post
Share on other sites
4 hours ago, sashan said:

A question regarding new ballistic system - would targeting in space and at large velocities work better? Current targeting can't hit relatively stationary orange fuel tank at 500 meters with a 5000m/s projectile gun.

Currently as it is coded the short answer is no, BUT with some tweaks to weapons we may be able to make some of those features work in the future.   Space combat is topic for another day there are a lot of things that would need to be updated for outside the atmosphere.

At the moment this focus is still in atmosphere combat.

Share this post


Link to post
Share on other sites

Yeah, I know, space combat is very different. I just hoped for some minor fixes first, such as guns targeting. It's a very basic feature after all. 
I can make rockets and guide them using Python and krpc, but guns are a different issue alltogether. 
 

You can get it why am I interested after viewing my signature. :P

Edited by sashan

Share this post


Link to post
Share on other sites
1 minute ago, sashan said:

It's a very basic feature after all. 

Well its not as basic as you would think - different reference frames for the game being in Orbit vs on planet change many variables for velocity and position tracking. It's more involved than you might think.  Anyway, just trying to keep the conversation on track for this threads purpose :)

There is a dedicated section for space combat issues (which may warrant their own issue tag) here https://github.com/PapaJoesSoup/BDArmory/projects/1  Feel free to create an issue to discuss any improvements you like to see. This is how we prioritize items for work.

  • Like 2

Share this post


Link to post
Share on other sites

I mean it's basic in terms of what's required to make orbital combat work. :) I know maths is rather involved. I'm now starting to work on guidance for missiles in orbit using Python. I think I'll deal with reference frame by selecting an inertial one that moves with parent body but doesn't rotate. If that's too far/makes numbers too large I'll put it closer but move in jumps once in a while.

 

Share this post


Link to post
Share on other sites

 

11 minutes ago, sashan said:

I mean it's basic in terms of what's required to make orbital combat work. :) I know maths is rather involved. I'm now starting to work on guidance for missiles in orbit using Python. I think I'll deal with reference frame by selecting an inertial one that moves with parent body but doesn't rotate. If that's too far/makes numbers too large I'll put it closer but move in jumps once in a while.

 

We have some good guidance algorithims working in C#. Also, we have a method for space missiles although is it only based on relative speed of objects.

I'd say that the most complex guidance we have at the moment is the ballistic one. Which can currently hit targets that are several km far  ( my record is a 900 km hit - beyond that distance Unity float precision is too low..)

I have some videos on my youtube channel:

 

Share this post


Link to post
Share on other sites

Very impressive accuracy, although that's not how ballistic missiles fly. :)

I was thinking more about space-to-space missile. Would also probably work for anti-ballistic missile kill vehicle, provided that something else brings it onto initial intercept trajectory.

 

Edited by sashan

Share this post


Link to post
Share on other sites
21 minutes ago, sashan said:

Very impressive accuracy, although that's not how ballistic missiles fly. :)

 

 

LOL. Yes,  that is an experimental guidance following a circular trajectory. 

Share this post


Link to post
Share on other sites

Back on topic,  the changes in this upcoming release have an interesting effect on vessel design.  Since armor piercing shells can now penetrate, you may experience instances where the shells simply pass through the vessel and do no real damage.  This is by design, and will necessitate new thoughts on vessel and aircraft design.  the idea here is that armor is designed to protect "Something".  so internal parts now become both desirable and vulnerable. 

This leads to interesting battles with degradation of the vehicle as a result of damage.  SpannerMonkey has spent a fair amount of time taking advantage of this by building ships with fully realized internal systems.  the results are pretty spectacular if you ask me...

Edited by Papa_Joe
  • Like 3

Share this post


Link to post
Share on other sites

Awesome. Really awesome. Especially for larger vehicles.

So, another question. I see you are now aiming FLIR ball basing on target coordinates in world-fixed coordinate system. This leads to significant jerking and lagging when the target is moving, and to it being unable to track airplanes and helis. I propose to make it track moving targets in a similar way as tracking radar geometry part does. Make it able to track aircraft. To do it, maybe use system of coordinates that is fixed to the parent vehicle but isn't rotating? This way it should be able to track targets that have low relative angular velocity with parent craft. 
Oh, also, ability to "track" sky would be good. If the target is outlined by sky and your craft is moving it is completely impossible to track it even when it's stationary.

Also, another request. :) I will also post it on Github. We need ability to target the targeting pod based on scanning radar data, not only tracking one. That's approximately how Su-27 optical tracker works, for example. 

Share this post


Link to post
Share on other sites

Hi all, as it's been mentioned a little example of making parts not so dumb,  ie not an interestingly shaped box with lots of added part modules, none of which could be damaged in any way unless the whole vehicle is destroyed. Now from an immersion pov this sucks, this is not how it works in RL and i think how it works now is so much better. 

This is a new version of the M1 that is in SM SFV's , as you can see it houses several modules, that must be fitted in order for the vehicle to function,  the tank hull itself has nothing, it's a box for carrying the other modules, any of which can be destroyed leaving the main vehicle intact but completely dead, through losing an engine or fuel or even the command core on which the turret sits,

Jb8N2Le.png

And it doesnt stop there, tanks are about as dumb as you could find, but next up the list really, in the league of big dumb parts, being ships. A huge object thas full of part modules and resources that can't be touched except by destroying the whole, not that's a bit silly with tanks, but extremely wrong in something ship sized,  there should be dozens of ways to ruin it's day, not just through the fact you've destroyed a huge chunk of it.

So we fixed it.

And rather than any further blatant self promotion in a BDA thread I'll leave you with a pic of the hull and anybody interested in the in and outs, which are many drop me a line in the SMA thread

OOu1IlM.png

Cheers

  • Like 3

Share this post


Link to post
Share on other sites

Those ship parts are amazing. I've been thinking of doing something like that, even started it. Never had time to finish tho.

If you could, could you add some corridors, structural beams and such to them instead of leaving just thin hollow shells? It was so much fun to walk around tho corridors of a ship I've made out of procedural wings. It would also make it look more realistic, and allow more realistic placement of internal parts.
ZZIc6pB.png

Here's what real destroyers look like inside: 
Image result for destroyer construction

Share this post


Link to post
Share on other sites
2 hours ago, SpannerMonkey(smce) said:

A nice shot showing some of the new damage FX , yes they are shell holes :)

vLJjgnP.png

YESSS! BULLET HOLES!

Share this post


Link to post
Share on other sites

Will this be able to affect ww2 warship parts as well?

(Nevermind this post. Just skip ahead of it.)

Edited by MadmanMorton

Share this post


Link to post
Share on other sites
On 12/13/2017 at 11:55 AM, dundun92 said:

YESSS! BULLET HOLES!

Take a very close look at the bullet holes, you will notice initial heating and cooling of the metal after penetration.  Very cool stuff...

  • Like 4

Share this post


Link to post
Share on other sites

So... how does this new system deal with energy weapons? I managed to simulate something that worked-ish previously:

But that's obviously going to need updating.

Realistically, an energy  "bullet" would have zero mass but I doubt that will work with the damage model as is. What would I have to do instead?

Share this post


Link to post
Share on other sites
18 minutes ago, Aerolfos said:

So... how does this new system deal with energy weapons? I managed to simulate something that worked-ish previously:

But that's obviously going to need updating.

Realistically, an energy  "bullet" would have zero mass but I doubt that will work with the damage model as is. What would I have to do instead?

I was experimenting with some of @SpannerMonkey(smce) laser weapons, here is what I used for the bullet config 

https://github.com/PapaJoesSoup/BDArmory/blob/dev/BDArmory/Distribution/GameData/BDArmory/BulletDefs/BD_Bullets.cfg

BULLET
{
    name = LaserBolt
	caliber = 30
	bulletVelocity = 4000
	bulletMass = 0.125
	//HE Bullet Values
	explosive = False
	tntMass = 0
	blastPower = 0
	blastHeat = 0
	blastRadius = 0
	apBulletMod = 0
	bulletDragTypeName = AnalyticEstimate
	
}

Additionally for your Weapon Config set "bulletDrop = false"

Also if you just don't feel like messing with Velocity / Mass / Caliber to find the right damage , in the Weapon Config, "bulletDmgMult" is a way to control the amount of damage for that Weapon. Its a multiplier.

You need a little bit of mass or you wont get any damage, but you don't want a lot as it will end up being a Mass driver (which could be an interesting weapon in its own right)

 

Note, you can use whatever values you like and create your own "Ammo" this is just what I used to get them working to what I thought was right, let me know if you are not getting the expected result and I can help find the parameters you need.

Edited by gomker
  • Like 1

Share this post


Link to post
Share on other sites
On 12/12/2017 at 7:02 PM, sashan said:

Those ship parts are amazing. I've been thinking of doing something like that, even started it. Never had time to finish tho.

If you could, could you add some corridors, structural beams and such to them instead of leaving just thin hollow shells? It was so much fun to walk around tho corridors of a ship I've made out of procedural wings. It would also make it look more realistic, and allow more realistic placement of internal parts.


Here's what real destroyers look like inside: 
 

Wow, I never realized how thin ships really are. I mean, I guess battleships/cruisers have a whole lot more armour, but thats really thin.

  • Like 1

Share this post


Link to post
Share on other sites
30 minutes ago, dundun92 said:

Was this you all

Nah we had  a little bit of help ... rofls.   

But seriously that little Easter egg is from DCK,   and aside from providing test parts etc, it's all on the coding team. although a nod has to be given to the SMI test team who've wrecked many installs to get this far ( cheers guys)    All the parts dept did was  just made sure they had properly cfg'd parts to shoot at.  :)

lWStw4E.png

Edited by SpannerMonkey(smce)
  • Like 3

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now