PDA

View Full Version : AE Basics: DPS Dissection


Octopus Rex
30th Aug 07, 4:44 PM
Rating: Newbie

It's nice if you've done the Hardpoints tutorial before this one, though it's not essential really.



DPS = (Damage * Accuracy) / Reload

Damage = (( Min damage + max damage ) / 2) * (AP / Armour Value) or "weapon minimum damage" (whichever is higher)
Note that Armour Piercing / Armour Value is capped at 1 and can't be larger. Also note that any damage modifiers from abilities etc. should be factored into this calculation.

http://mods.octopusrex.co.uk/content/dps/dps1.jpg

DPS and damage is a important element of balance, but beware: if you rely too much on DPS values, you run the risk of doing a unit vs unit balancing which wouldn't take into account the general gameplay of your race Now, this may seem like an obvious tutorial to do but it's nice to have it all spelt out for you and people have asked for this before. So here's how you can fiddle with it.

To find out what weapons a unit uses first find their EBPS, their entity_blueprint. When you've found that expand "combat_ext" and then "hardpoints" and then search through each hardpoint for the relevant weapon files. Check this tutorial (http://forums.relicnews.com/showthread.php?t=160303) to find out what the hell is going on in this section of the AE.

Now you know which weapon files it's using go and find the one you want to change in the weapon section at the bottom of the AE. Got it? good.

http://img337.imageshack.us/img337/6601/dps4ir7.th.gif (http://img337.imageshack.us/my.php?image=dps4ir7.gif)

Damage: a damage value is randomly generated between the minimum and maximum. This is the base damage. To find this expand "area_effect" then "weapon_damage" then "armour_damage". This is where the main juicy stuff is. "min_damage_value" (different from "min_damage") is the "weapon minimum damage" mentioned in the formula above. If, after all modifiers etc., the remaining damage is lower than this value then it overrides it, otherwise it's not really used.

Armour Piercing: to get to these expand "armour_piercing_types" from the same place as max_damage, then go and expand all those little tables. Each table has an armour type and a value. This is the AP mentioned in the formula. Armour Value is on the enemy and is found in the health_ext on the entity files; almost all units have armour 100 (but you can change this if you want, I've tried it, it works). Because of this AP/Armour Value can really be thought of as AP/100 - so just think of that armour piercing value as a percentage. Something with an AP of 50 will do 50%, or half, of the base generated damage to that armour type. To increase a weapon's effectiveness against a certain armour type just find that right one and bump the stat. Easy!

This calculation is capped at 1; the highest it can come out is 1 regardless of how big the armour piercing value is. So if all units have armour 100, then there's no point any units having Armour Piercing over 100 as the surplus will be wasted. If, however, you have units with more than 100 armour, then units with over 100 armour piercing come into play and are needed to get that max piercing. Also, when filling out your armour piercing tables just be real careful not to put the same armour type twice. It's best to set the armour table things in a parent .nil file once and let them all inherit if possible. Relic, for some reason, didn't think that this was a wise move.

And YES, it does get bloody annoying opening all those little table and NO there's no way round it! Sorry!

Reload time: this is found on the main section of the weapon file under "reload_time" surprisingly enough, 2/3 the way down. Obviously the longer the reload (in seconds) the bigger drain on the DPS. Simple. This can enhance the glass cannon nature of a weapon, like the Sentinel's laser. Reload times can only be in increments of 1/8ths of a second apparently. So 0.125, 0.25, 0.375, 0.5 etc.

Morale damage: is just a simple value that should've already spotted near the max damage.

Accuracy: This is a simple decimal at the top of the file. 1.00 = 100% accuracy. 0 = will not fire. Accuracy_reduction_when_moving, which is just below it, reduces the accuracy by that fraction. So 0.80 accuracy with an accuracy_reduction_when_moving of 0.50 gives an accuracy of 0.30 on the move.

Myths I've heard:

"accuracy_reduction_when_moving reduces it by a percentage of the original accuracy" - i.e. 0.80 accuracy reduced by 0.50 = 0.40. Wrong. Assault Cannons on Terminators have 0.65 and are reduced by 0.65, Terms ACs do not fire on the move, because they have been reduced to 0 accuracy. If the myth was true then they would still fire as they would have 0.4225 accuracy.

"1.00 accuracy still misses from time to time." - I've heard this said a few times and can neither confirm nor deny it.

"There's no point having armour piercing over 100." - I think that one is covered above: as it is there is not any point, but if you mess around with the armour values there is.

Other Balance Factors on the weapons file: don't forget that there's "max_range" and "min_range" kicking about on there and also the upgrade price and time in "cost". "Setup_time" is also an important one too for those heavy weapons.

So that's about it really.

http://mods.octopusrex.co.uk/content/dps/dps2.jpg

divineauthority
30th Aug 07, 4:57 PM
Another 2 tutorials in a day! Cheers for his one too, I always wondered what min_damage_value was.

Also it explains the armour piercing rather simply. What happens if you have an armour type in the table twice? Does the game just crash or does it somehow enforce that armour piercing value twice?

Aden
30th Aug 07, 11:53 PM
I hope you don’t mind Rex but I am printing these guides/tutorials and selling them on eBay.

Modifying DOW with Eight Arms
By Octopus Rex

:jester:

horusheretic
31st Aug 07, 1:26 AM
min_damage_value is used, take a look at it when you have it set to one, then test it with a solid damage value (like 100 min and max with 100 percent ap)

then use it with say 100 min_damage_value and notice how much more damage the weapon does!

min damage value is more like a multiplyer of whats put in it and then i think the ap values is taken after.

This calculation is capped at 1; the highest it can come out is 1 regardless of how big the armour piercing value is. So if all units have armour 100, then there's no point any units having Armour Piercing over 100 as the surplus will be wasted.

again that could be something you may want to test out properly as you see some weapons mainly the IG battlecannon with ap values over 100 which makes me think that it could add extra damage to the weapon against that type attacked.

to the "1.00 accuracy still misses from time to time." , i think that also depends on the traverse speed of the weapon and the speed of the target bieng fired at and how its moving.

Octopus Rex
31st Aug 07, 2:03 AM
The min_damage_value I thought was pretty well documented to have that effect? Hmm. Might have to test that. It's funny, you gotta be SOOO sure of every little thing before you do these! The complex upgrades bit in the last one was a nightmare to test! 1 sqd member w/complex and 1 leader. 1 normal sqd w/no upgrades but complex. muzzle and origin values. AArrggh!!!

Also, the "capped at 1" thing was courtesy of Slow Runner who says he's tried it. He's put all APs over 100 into the no brainer fix list last time I checked (I think). I may test that also though.


to the "1.00 accuracy still misses from time to time." , i think that also depends on the traverse speed of the weapon and the speed of the target bieng fired at and how its moving.I would agree, this would be especially relevant to weapons that fire slower moving projectiles.

ADEN: I think I'm going to do them in to a zip-pack of downloadable HTML pages with them all cross-linking to each other and designed all properly. That should be fun to make.

compiler
31st Aug 07, 4:52 AM
Excellent tutorial, as usual !

I'd just like to tone down the importance of DPS in balancing : if you rely too much on DPS values, you run the risk of doing a unit vs unit balancing which wouldn't take into account the general gameplay of your race.

I'd say that DPS is useful for fine tuning, but never forget how your army is supposed to behave as a whole and don't let the dps spreadsheet decide what's good for your mod.

Octopus Rex
31st Aug 07, 4:58 AM
Sound advice compiler. Added it (assuming you don't object).

Aden
31st Aug 07, 8:28 AM
ADEN: I think I'm going to do them in to a zip-pack of downloadable HTML pages with them all cross-linking to each other and designed all properly. That should be fun to make.

Now there's an idea where I could actually be useful to you. I have moderate skills with web design and HTML coding and I also have a small amount of web space going spare. I would love to help you out with this Rex if you needed/wanted it.

Let me know, I can give you an example of web pages I have built in the past.

The_Guardman
3rd Oct 07, 4:49 PM
How exactly is factored in the generic Armour_piercing in respect to the Armour_piercing_type? Is it a multiplier of sort (like, if I put it at 1.0 it mean 100% damage on the A_p_t tables) or something? I have tryed to set it at 0.0 and it seem to me that the weapon do only the min_damage_value, instead than the intended.

Octopus Rex
3rd Oct 07, 6:20 PM
As far as I am aware the generic armour_piercing (I assume you're talking about the armour_piercing value that is just outside the list of types) is a default setting in case there is no setting for a specific armour type. It's quite conceivable to miss out an armour type in that list of 14 and so as far as I am aware this is the point when the generic armour piercing steps in as a backup.

The minimum damage value will override any resulting damage values that are lower than it.

Sober
3rd Oct 07, 7:59 PM
Reload times seem to work in intervals of 0.125, Homer told me while looking through some weapons in DoWXP. Not fully sure on how everything works, but it rounds to the closest 1/8s interval. If a heavy bolter has a reload rate of 0.4, it brings it to 0.375; at least the UI will report it (40-48 will translate to 106-128, not 100-120, at least given in the UI numbers). Also, that would mean reload times set to 0 would default to 0.125, otherwise divide by 0 errors should crash the game when it loads the file, but it doesn't when you try it.

Also, not on the subject of DPS really, but to have a setup time, you need to ensure that fire on the move accuracy is at least 0 (otherwise setup time is as good as having none and just having 100% reduction, for instance).

/e: also, compiler is right, DPS is only good for fine tuning, and really only good for rapid fire weapons. DPS shouldn't be considered relevant with things like ordinance and weapons with > 1s reload times anyways :)

Octopus Rex
4th Oct 07, 4:50 AM
Imfamous Crisis Suit Flamer Imba was when they had 0 reload time. Didn't know it rounded it to 8ths though. Ta.

As for setup time, yeah, you can just put a teeny tiny setup time of 0.00001 or something or reduce acrruacy on the move to 0 like mentioned above in the myths section (see the bit about the termie assault cannon).

Adovid
21st Dec 07, 12:55 AM
Having trouble with reload times and animation sync problems using necron gauss flayer, the units don't wan't to change the animation to match when the damage takes effect.

I set reload time to something noticable like 25 and saw that it waited about that much time when an enemy unit would die, it also seemed to affect the squad in that I could only see the damage being dealt once at a time but maybe the squad was all attacking the same target every time, hard to tell.

Octopus Rex
21st Dec 07, 4:51 AM
I don't quite see the problem: your necrons only fired every 25 seconds and only damaged units every 25 seconds. What's the problem?

Adovid
21st Dec 07, 12:16 PM
It didn't look like they were shooting when they were killing.

They would either be shooting rapidly and nothing happens or they would not be shooting and some unit would die.

Under the hood it followed the attributes but in graphics the necrons were shooting away at rapid succession with a 25 second reload and dealing 0 damage until the 25 seconds cycled around.

[update:

This seems to be buggy/problematic as well, units will shoot at dead units. This is a graphical problem as the damage is still being applied, it just doesnt look like it-- should I ask somewhere else? Is there a way I can get winter assault necron weapons into dark crusade as the attack rate on those necrons was slower.]

Octopus Rex
26th Dec 07, 10:27 AM
Sounds like it could be something to do with the animations, although I'm really not that sure. Sorry.

Adovid
29th Dec 07, 1:59 AM
Yeah I figured this much. Thanks for the help.

Mephistoned
13th Apr 09, 9:03 AM
Hey all,

Is there a way of reverse engineering AP values from DPS. ie. I have been filling in all the other information first (including intended DPS). This has allowed me to 'balance' new units against existing ones (the advice above against NOT doing this is noted, but this is just a place to start from).

Anyway - can any algebra genius give me the reverse formula from the DPS one, so I can enter all other values and get AP as a result?

Should have paid more attention at school, but was too busy constructing the perfect 2000 point Eldar army in the back of the math's exercise book :donny:

Cheers!

krxatosx
19th May 09, 6:27 AM
but to change the size of a unit as you do?

Octopus Rex
21st May 09, 6:15 AM
http://forums.relicnews.com/showthread.php?t=159751 - squad size is the first issue deal with in the linked tutorial. Use that thread if you have any more questions about squad size please as it's not very relevant to this particular thread. Hope that helps. :)

Somi
29th Jul 09, 2:42 PM
AWSOME tutorial ! MILLION THANKS !
I have only 2 questions.
1. area_effect->wep._dmg->armor_piercing so i have to set this vaule to 1, to activate the certain dmgs in armor_piercing_types?
Or the armor_piercing_types dmgs take effect from default and AP value is not matters here?
2. every automatic wep. have some kind of DMG multiplier ?
For example : space_marine_heavy_bolter_tactical, max. dmg. 45 reload time 0.4 45/0.4 = 112.5*1.16(marine_accuracy_upgrade_research)*1.16(marine_accuracy_upgrade_research2) = 151, but the weapon max. dmg. ingame is 161 it gives +10 dmg.
space_marine_bolter_tactical gives +4 dmg, every auto weps gives some + dmg. But with semi-auto weps the outcome is correspond my calculation (sniper rifle, artillery weps).

Octopus Rex
3rd Aug 09, 1:59 AM
I don't really understand what you mean with either of those questions, sorry. Could explain a bit more please?

corncobman
3rd Aug 09, 2:15 AM
1. The armour penetration value is the default value applied when there isn't an entry in the armour penetration table.

2. All weapons are automatic. If they were semi automatic, you'd have to click for every shot. :D

Weapons with setup times like sniper rifles will be a little off because of the extra time it takes initially.

Artillery is kinda funny, because even though they aren't as accurate they will still do damage because of the fact they will always hit the ground and therefore never "miss" due to the area of effect.

Yeah question two has my head spinning.

Somi
3rd Aug 09, 4:36 AM
Thank You ! I think i get it now.

Thank You ! i think i get it now what AP value do !
About my 2nd question it dosent matter any more sorry for trouble !