![]() |
Proposed Damage System Overhaul
Right - copied and pasted from a post I made on the "official" (*cough*) forums.... Sorry if it seems a bit like a brain dump http://forum.shrapnelgames.com/images/smilies/happy.gif
I've already emailed the idea off to Aaron btw (with an offer of rewriting all relevant components to cope), but it's quite a large change so I wouldn't expect things to happen soon (assuming he likes the idea even). Anyway, feedback / other ideas appreciated. Now this is the sort of thing i'd love to see. Off the top of my head, there's kinetic damage (er, rocks / uranium slugs / whatever) - thermal damage (lasers! PEW PEW!), corrosive damage (or other chemical burns), Electromagnetic damage, Explosive damage - and that's only a handful of things we can current produce on earth. It would be great if we could allow specific shield resistances, so a hyper-cooled armour would be great at soaking up the old thermal damage, but not so good at everything else. Although - for 'damage distribution' - it would make more sense to organise shields and armour into a greatest->least resistance order. Example (bear with me, this could be quite long :O ): -------- Now, a *better* way to handle this would be to re-think the way shields and armour currently work, and to assign the following setup to shields / armour and weapons. Damage Types A list of Damage Types needs to be created - each should be conceptually different and ideally non-overlapping where possible. DamageTypes.txt file is partly redundant - penetration, damage and resistance are moved into the relevant components (weapons / shields+armour) so only a few fields (like population killed per damage point, viral weapon flag) will remain - along with the special requirements for targetted weapons, special effects, and so on. <font class="small">Code:</font><hr /><pre>Damage Type Name := Thermal Description := Damage caused by heat. Picture number := 1 Population Amount Killed Per Damage Point := 0.25 Crew Amount Killed Per Damage Point := 0 Is Viral Weapon := 0 Number Of Special Effects := 0 Number Of Requirements := 0 Number Of Abilities := 0 Damage Type Name := Kinetic Description := Damage caused by impact. Picture number := 2 Population Amount Killed Per Damage Point := 0.25 Crew Amount Killed Per Damage Point := 0 Is Viral Weapon := 0 Number Of Special Effects := 0 Number Of Requirements := 0 Number Of Abilities := 0 Damage Type Name := ElectroMagnetic Description := Damage caused by electromagnetism. Picture number := 3 Population Amount Killed Per Damage Point := 0.25 Crew Amount Killed Per Damage Point := 0 Is Viral Weapon := 0 Number Of Special Effects := 0 Number Of Requirements := 0 Number Of Abilities := 0 Damage Type Name := Explosive Description := Damage caused by explosions. Picture number := 4 Population Amount Killed Per Damage Point := 0.25 Crew Amount Killed Per Damage Point := 0 Is Viral Weapon := 0 Number Of Special Effects := 0 Number Of Requirements := 0 Number Of Abilities := 0 Damage Type Name := Corrosive Description := Damage caused by acid and chemical burns. Picture number := 5 Population Amount Killed Per Damage Point := 0.25 Crew Amount Killed Per Damage Point := 0 Is Viral Weapon := 0 Number Of Special Effects := 0 Number Of Requirements := 0 Number Of Abilities := 0 </pre><hr /> Shields/Armour Shields are still hit before armour, but are handled in the following way: ShieldsAndArmourLevels.txt file is now superfluous as resistances will be ordered from highest to lowest. The shield and armour components will get a rather large overhaul. Alongside the usual component fields we would see: <font class="small">Code:</font><hr /><pre>Number Of Resistances := 2 Resistance 1 Damage Type := Thermal Resistance 1 Description := Shield negates 75% of all thermal damage while operational. Resistance 1 Damage Formula := 75 Resistance 2 Damage Type := Kinetic Resistance 2 Description := Shield negates 40% of all kinetic damage while operational. Resistance 2 Damage Formula := 40 </pre><hr /> Weaponry With the introduction of new damage types and resistance formulae - we need a way to be able to quickly and easily define shield and armour penetration. Previously these were held in DamageTypes.txt, but if we were to do this with the proposed model the file would become incredibly complex and unwieldly. Thus - penetration(s) are moved into the weapon components, and damage for weapons will be split up as follows... Alongside the usualy component fields, we get something like (I know it's not exactly the correct language used, but you'll get the important bits!) :- <font class="small">Code:</font><hr /><pre>Weapon Damage Types := 2 Damage Type 1 Name := Thermal Damage Type 1 Shield Penetration Formula := 0 Damage Type 1 Armour Penetration Formula := 0 Damage Type 1 Amount Formula := ([%LEVEL%]*10)-[%RANGE_TO_TARGET%]*2.5 Damage Type 2 Name := Kinetic Damage Type 2 Shield Penetration Formula := 30 Damage Type 2 Armour Penetration Formula := 5 Damage Type 2 Amount Formula := ([%LEVEL%]*10)</pre><hr /> The big example Ship A shoots the weapon described above (level 4) at Ship B (who has one unit of the shields described above) At a range of 5 squares - the weapon will do 27.5 Thermal damage (4*10-12.5) with zero penetration and 40 Kinetic Damage(4*10), where 30% will pass through the shields and 5% of the remainder will pass through armour. So.... it's time for some calculations! 1. Remove all 'penetration data' and move it to one side (we'll come back to this after the shield stage) <font class="small">Code:</font><hr /><pre>27.5 Thermal damage to shields 28 Kinetic damage to shields (40-(40*30%) = 40-12 = 28) 12 Kinetic damage penetrates shields and goes straight to armour.</pre><hr /> Ship B has the shields listed above (75% thermal resist and 40% kinetic resist) - so immediately, the damage applied to shields is completely reduced by this amount. <font class="small">Code:</font><hr /><pre>27.5 Thermal Damage reduced to 6.875 Thermal Damage 28 Kinetic Damage reduced to 16.8 Kinetic Damage</pre><hr /> This damage is then removed from the remaining shieldpool at a 1:1 ratio. If the shield is depleted - you must remember to cancel-out the resistances on the remaining damage, and move on to any remaining shields in order of greatest resistance. Let us assume that the ship only had 10 shield points remaining. <font class="small">Code:</font><hr /><pre>6.857 Thermal damage and 16.8 Kinetic Damage = 23.675 Total Damage of which 10 gets soaked by the shields leaving 13.675 which gets through. The damage ratio after resists is 6.875:16.8 or 1:2.4436 So after the 10 soak we are left with 3.97 Thermal and 9.70 Kinetic damage</pre><hr /> We then need to reverse the shield-resist calculations on this remaining damage pool (after all, the shield couldn't cope with this much damage so the shield-resists can't affect this portion of damage. Undoing the 75% thermal resist and 40% kinetic resist leaves us with: <font class="small">Code:</font><hr /><pre>3.97*(1/25%) = 15.88 Thermal Damage. 9.70*(1/60%) = 16.16 Kinetic Damage</pre><hr /> This added to anything which directly penetrated the shields gives us the amount we then start using when working out armour damage In this case, we add the 12 Kinetic Damage which penetrated before to give a new starting point for the next round of calculations: 15.88 Thermal Damage and 28.16 Kinetic Damage. All of the calculations are then repeated for armour and resists, and anything remaining / penetrating armour will damage the internal structure. Multi-mixed-shields and multi-damage types. Since weapons can deal more than one damage type, and shields can resist more than one you must apply each damage type to the shield with highest resist for that type, in order descending. This could get complex if you're working it out on paper, but the computer just needs to track each current damage-type path. So, if Ship B had two shield generators, once specialising in Kinetic and another specialising in Thermal, each shield would deal with the particular part of the damage as best it could: e.g. (woop - another example full of maths) Simpler weapon though. It deals 50 Thermal Damage and 50 Kinetic Damage. Ship B has 3 shield generators, one has 60% thermal resist (and 5% kinetic resist), the second has 75% kinetic resist only. The third does a flat 20% resistance to everything. For each damage type that gets gets calculated, order the shields (or armour if you're at that stage) into resistance order. <font class="small">Code:</font><hr /><pre>75% kinetic resist on generator B 60% thermal resist on generator A 20% kinetic resist on generator C 20% thermal resist on generator C 5% kinetic resist on generator A</pre><hr /> Damage and resistance versus the shields will then get computed in the order listed above.... So firstly, all kinetic damage will be worked out against generator B, any remaining damage is put on one side until we hit the next kinetic damage step later, then all thermal damage is worked out against generator A... again any remainder is put on one side, then all combined remaining damage is worked out against generator C, finally leaving any remaining kinetic damage versus generator A. Anything not absorbed by shields, resisted by shields, or so on gets through to armour. --- Also - handling them in this way shouldn't break the existing concept of simple shields, phased shields and whatever else in stock because by (when damage is worked out) applying the shields in order of highest resistance you'll get the same overall effect. Just define a few simple damage types (Normal, Phased, Null-Space) and you'll get identical behaviour - but this model increases the scope for modding significantly. Of course - shields don't *have* to have resist values - they'll be depleted by unresisted damage or damage remaining after resists are worked out. I hope I explained that all in enough detail - the concept is sound in my head at least http://forum.shrapnelgames.com/images/smilies/happy.gif If anyone needs / would like, I can work through more (more detailed!) examples. |
Re: Proposed Damage System Overhaul
Not sure I get the percentage thing on penetration/damage absorbtion. A layer of sheet metal from a car door will stop a much larger percentage of the total damage from a .25 auto pistol bullet than from a .50 cal machinegun bullet. In fact, it might completely stop the .25 and not measurably slow down the .50 cal.
It seems to me that a more realistic model is to rate waepons for penetration and shields/armor for penetration resistance, with the damage actually taken by the target = D * (P-R)/P where D = base damage caused by the weapon at the given range P = penetration of the weapon at that range R = resistance of the shield/armor You could then have different damage types for which a given weapon might have different D & P and a given shield/armor might have a different R. To prevent just piling on too many layers of shield/armor (so as to outclass all weapon P values), though, you'd want to limit the number of slots available for defenses but have something conceptually similar to mounts for them so bigger ships can mount a stouter defense. |
Re: Proposed Damage System Overhaul
The reason for the % absorbtion / resistance was mainly because quite a lot of things are energy based weapons - without the % you lose the ability to simulate that. Yes, with kinetic damage it's quite often all or nothing, but then again - you can't accurately represent that alone because armour doesn't just "fall off" when it gets hit by a slug.
|
Re: Proposed Damage System Overhaul
A couple ideas for shielding systems:
Trank Shields Trans-Kinetic shields use superstring theory of action at a distance (remember when they said that wasn't possible?) to absorb kinetic energy. Using a gyroscopic flywheel effect of perpendicular energy fields, it converts forward momentum and returns angular momentum, thus deflecting objects before they strike the hull. Only good against projectile weapons. Warp Shields Nearly impenetrable by their nature, warp shields are an extension of warp drive theory. They connect the space in front of a ship to the space behind a ship, forming a short wormhole. This takes the ship out of harm's way, and is effective against all weapons that travel to their target, including most energy weapons. However, warp shields must be aimed along the axis of danger, and so it's hit or miss. Temporal Shields Surrounds the ship in a temporal anomaly; all things approaching the ship take longer and longer to get there as they pass through the field, until at the field's event horizon they take an infinite amount of time to strike the shield. Until the ship and it's field move along down the road. Instant weapons, and weapons that don't travel to their target are immune. Phase Shields Broadcasts an energy pattern identical to incoming beam, but 180 out of phase, damping it's effect out. Phase shields can only counter energy beams the player has researched. Further, if incoming fire is of a higher tech level, damage is passed through as a weapon of strength equal to the tech difference. |
Re: Proposed Damage System Overhaul
Make a mod, release it, let players test it. You wont receive many opinions without people actually realizing exactly how your change influences the system.
|
Re: Proposed Damage System Overhaul
Quote:
Quote:
For an enhancement, armor could "leak" proportional to the percentage of damage it has absorbed. If the armor is at 90%, not only is its R reduced by 10% for the next shot but a damage point inflicted by the next shot has a 10% chance to get allocated to internal systems even though the armor isn't completely destroyed. This would basically model the increased possibility that the hit occurs on a previously damaged spot on the armor as the armor gets shot up. |
Re: Proposed Damage System Overhaul
What you really want is emissive ability.
Reduce damage by a fixed amount so small shots kapwing off, and big shots mostly go right through. Combine that with armor-as-inert-internals, and you can make holes. |
Re: Proposed Damage System Overhaul
Quote:
|
Re: Proposed Damage System Overhaul
Sounds alot like the Carrier Battles Mod...
http://forum.shrapnelgames.com/images/smilies/cool.gif |
Re: Proposed Damage System Overhaul
Barnacle Bill said:
Yes, emissive is pretty close to the idea except I'd want shields to work that way, too. Surely leaky shielding can be implemented in SE5 too. http://forum.shrapnelgames.com/images/smilies/happy.gif Also there should be a limit by hull size on how much you can pile on. Even easier done than said. http://forum.shrapnelgames.com/images/smilies/laugh.gif Look up my thread on modding out LCX as early game warship for a method of limiting the number or percent of hull you can use for arbitrary groups of components. |
All times are GMT -4. The time now is 08:01 AM. |
Powered by vBulletin® Version 3.8.1
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright ©1999 - 2025, Shrapnel Games, Inc. - All Rights Reserved.