Results 1 to 2 of 2

Thread: RTW BATTLE MECHANICS: Part II – Equalization of Skeleton Lethality

  1. #1
    Foederatus
    Join Date
    Mar 2010
    Location
    Holland, MI
    Posts
    48

    Default RTW BATTLE MECHANICS: Part II – Equalization of Skeleton Lethality

    1. INTRODUCTION:

    For those of you just seeing this for the first time, please refer to the Part I that I wrote on August 02 2010 titled
    RTW BATTLE MECHANICS: Part I – A Study of Combat Parameters” by phalanx_man found at this link:

    http://www.twcenter.net/forums/showthread.php?377804-RTW-BATTLE-MECHANICS-Part-I-–-A-Study-of-Combat-Parameters

    My sincere apologies for my very long delay in writing up the second part of my studies of combat parameters.
    Part of the delay was that my career as a field engineer often has me working 13 hours/day, 7 days/week and the other part is that, when I do get time off, it is far more fun to actually play a campaign than write up a dry report on test results.

    However, for two reasons I finally decided to buckle down and complete this Part II. One reason was being encouraged as I was by Aradan. The second thing is, I had initially thought that with the coming of Rome II, there would be little or no interest in the original RTW mods. However, on seeing some of the concerns of the modding community at the release of Rome II, I thought that my work could still serve a purpose. Thus, I decided to buckle down and publish the rest of my findings regarding combat parameters - especially what I feel to be perhaps the single most important tuning parameter of all: Lethality – or as I shall rename it to be more descriptive – skeleton correction factor (SCF).

    Prior to proceeding, let me clarify my nomenclature, and particularly of my division of combat parameters into 2 principal categories: DIRECT PARAMETERS and TUNING PARAMETERS.

    DIRECT Parameters are those that directly influence kill rate (and that most gamers are familiar with playing around with) – Attack strength (ATT), Armor (ARM), Defense Skill (DEF) and Shield (SHD) along with any bonuses (such as charge bonus, etc).

    TUNING Parameters shall be those parameters that indirectly influence kill rate by hidden means that are not immediately recognizable, such as Lethality (aka skeleton correction factor, SCF), Animation Delay (AD) and Soldier Radius (R).

    In my first study I had focused on the effects of the DIRECT combat parameters with regards to verifying the combat kill rate equation, the missile kill rate equation, and most importantly how the various direct parameters (Armor, Def Skill and Shield) are modified by the combat engine by attacks from front, right, left and rear.
    Thus in Part One I adjusted the direct parameters WHILE HOLDING the tuning parameters fixed at constant RTR values of SCF=0.3, AD=0, and left the standard values R=0.4, H=1.7 unchanged.

    In this study, I have set the DIRECT combat parameters at standardized values (ATT=10, ARM=10, DEF=10, SHD=10) and changed the TUNING parameters in order to
    (a) see their effects numerically and, more importantly,
    (b) to determine an SCF that will make the kill rate of a given skeletons equal AND realistic WHEN the direct parameters are also equal..

    The reason for this is that we, as modders, want to be able to directly control the combat parameters and not have other hidden effects throw our changes out of whack. For example, if we wish to make a combat more realistic looking, we would typically change the skeleton. But if that skeleton is inherently less (or more) lethal, we have unbalanced our carefully chosen direct parameters without realizing it.

    As such, I have conducted a rigorous series of controlled tests to determine the correct SCF for various skeletons that result in an EQUAL kill rate for EQUAL direct parameters of ATT, ARM, DEF and SHD.

    Once again, please reference the EDU guide that Aradan so meticulously put together and which has been invaluable to me when I first began this study.

    “The Complete EDU Guide for Rome Total War”: by Aradan found at
    http://www.twcenter.net/forums/showthread.php?t=111344

    Kind Regards,
    Phalanx_man


    2. SUMMARY & CONCLUSIONS:

    The following is a results of the best SCF (aka Lethality) to equalize various skeletons based on my combat testing. The list may not be complete but I believe it covers all of the common ones as well as some of the less common ones. Keep in mind, this was done assuming a base ATT=10 and DEF=30, chosen so using the average noted in Rome Total Realism and which is the typical values for standard to well trained/equipped units in my mod.

    My apologies that the columns in the tables do not line up, just read the values from left to right relative to the header line.

    SKELETON (+ Weapon Modifier) SCF / AN-DELAY / NOTATIONS ============================================================================


    INFANTRY/MELEE
    ==============

    SPEARS
    fs_fast_spearman 0.3 0 STANDARD

    fs_spearman 0.3 0
    fs_s1_hoplite 0.2 0

    PIKE-PHALANX
    fs_thp_f_spearman (+long_pike) 2.0 10
    fs_thp_f_spearman (+spear) 2.0 10
    fs_fast_spearman (+long_pike) 1.8 10
    fs_fast_spearman (+spear) 1.8 10

    SWORDS
    fs_fast_swordsman 0.2 0
    fs_swordsman 0.2 0
    fs_s1_gladius 0.2 0
    fs_s1_barbswordsman 0.3 0
    fs_2handed 0.2 4
    fs_standard_bearer 0.2 0
    fs_slinger_new (Melee Weapon) 0.3 0
    fs_dagger 0.2 0 (NOT RECOMMENDED, USE GLADIUS INSTEAD)
    fs_fast_dagger 0.2 0 (NOT RECOMMENDED, USE GLADIUS INSTEAD)


    CAVALRY/MELEE
    =============
    fs_hc_spearman 0.6 0
    fs_thp_m_spearman 0.6 0
    fs_hc_swordsman 0.6 0
    fs_chariot_sword 1.8 0


    NOTE:
    MISSILES do not use SCF even though there is a default value of 1.0 that appears on that line in EDU. I have also verified this in my testing and found no difference in number of kills by a volley of missiles between test SCF values of 1 and 2 (a large difference). Refer to Aradans EDU guide


    3. METHODOLOGY:

    In order to help make RTW and its mods more realistic, I needed to select SCF that would result in REALISTIC kill rates, and thus would have to have related the kill rate to a historical battle where the numbers of combatants, the number of fallen and the battle duration were well known. One such battle that fits this requirement is The Battle of Cannae between Rome and Carthage, as Polybius is perhaps the most reliable of ancient historians.
    (I will be only looking at numbers for infantry here)

    BATTLE OF CANNAE:
    THE ROMANS began with 80000 Infantry of which 50000 were killed
    CARTHAGE began with 50000 Infantry of which 10000 were killed
    The total battle (plus encirclement rout) lasted 4 hours.

    Thus a total of 60000 infantry were killed from an initial total of 130000
    = 46% in 4 hours = 11.5 %/hr = 0.192%/min ~ 0.2%/min

    However, I cannot simply apply this as the kill rate for my battle testing due to the effects of scale. A battle with different numbers of troops will take a different amount of time to resolve. The math follows herein.

    Based on simple geometry, we can say that the following is true:
    Assuming that any battle will have the same general SHAPE of overall formation of the 2 sides and the DENSITY (soldiers per unit area) does not vary between comparisons, then we assume that each army with quadruple (4x) the soldiers, will be twice as wide (double the FRONTAGE) and twice as deep (double the DEPTH) as it was with 1x the number. In other words, the number of soldiers is equal to some average density times the area that the army occupies.

    So, number of soldiers is equal to average density times area; N=dxA
    And, area is equal to frontage times depth; A=FxD

    (Note in this section, “=” means equal to and “~” means proportional to)

    Assuming geometry is constant, the ratio of frontage to depth will always be the same. That means that an army that is 4 times as large will be twice as wide and twice as deep INSTEAD OF being 4 times as long and equal depth. Now, this is not always true but we have to have a baseline to do the scaling and since we don’t always know how many rows of units an army has (Romans and phalangites excepted), this is the best (and only) assumption we can make.

    So, if frontage is always exactly proportional to depth, then F~D, then.

    A=FxD becomes A~FxF or A~F^2 (or F-squared)
    And, N=dxA becomes N=dF^2 or N~F^2

    GROSS kill rate is hereby defined as number of men killed per unit time, K = DN/Dt thus K~N/t
    And SPECIFIC kill rate is defined as percentage of original number of men killed per unit time; Kr=K/No*100
    (Where No is the initial number of combatants, DN is number killed and Dt is the duration of the battle.)

    Thus, to scale one battle to another then we see the following is true:

    We know that K~F because the frontage is the line of battle, which is the only place enemy soldiers can kill each other. Behind the line the rest of the soldiers are just waiting their turn.
    We also know that K~d, because, for a given frontage if you double the men per meter of frontage you will also get double the gross kill rate. But since we don’t always know the linear density of soldiers in all battles, we will also assume this to be fixed and constant for scaling purposes.

    So, Finally:
    K~F
    A~F^2
    N~F^2
    SPECIFIC kill rate, Kr~K/N
    substitute K~F and get Kr~F/N,
    invert N~F^2 into F~sqrt(N) and get Kr~sqrt(N)/N
    or, finally,

    Kr~1/sqrt(N)

    Thus when comparing 2 battles, if Kr1 is the average kill rate (%/minute) for N1 number of combatants for battle #1 and Kr2 is the average kill rate (%/minute) for N2 number of combatants for battle #2, then:

    Kr2/Kr1 = sqrt(N1/N2)

    As examples, this means that if Battle#1 is a Reference Battle,

    Then Battle#2 with 4 times the number of combatants will
    (a) have double the frontage (sqrt of 4),
    (b) have double the GROSS kill rate (in terms of number of soldiers killed per minute)
    (c) have half the SPECIFIC kill rate (2x gross kill rate divided by 4x the combatants)
    and thus
    (d) take twice as long to resolve.

    On the other hand, Battle#3 with 1/4 the number of combatants will
    (a) have half the frontage (sqrt of 1/4),
    (b) have half the GROSS kill rate (in terms of number of soldiers killed per minute)
    (c) have double the SPECIFIC kill rate (1/2x gross kill rate divided by 1/4x the combatants)
    and thus
    (d) take half as long to resolve.

    So, Scaling CANNAE (#1) to RTR LARGE BATTLE (#2):
    Assuming RTR battle = 2 x full stacks of Infantry (Huge Units) = 2 x 20 x 240 = 9600 combatants.

    N1/N2 = 130000 / 9600 = 13.54,
    sqrt (N2/N1) = 3.68
    Kr2/Kr1 = 0.192%/min x 3.68 = 0.708 ~ 0.7%/min


    And, Scaling CANNAE(#1) to TEST BATTLE(#3):
    Using 2 x single units of Infantry (Huge size) = 2 x 240 = 480 combatants.

    N1/N3 = 130000 / 480 = 270.8,
    sqrt (N1/N3) = 16.46
    Kr3/Kr1 = 0.192%/min * 16.46 = 3.165 ~ 3.2%/min

    So, TARGET Kill Rate in my testing to adjust tuning parameters is 3.2%/minute (see test data for specifics).


    4. TEST DATA

    Below represents a condensed summary of many months of work. Each skeleton was run in a test battle for each of several iterated SCF values an average of 10 times. If you figure there are 15 rigorously tested skeletons, with an average of 4 SCF values iterated, 10 times each - that is a lot of test battles ! What I have put below is a summary of the final findings. Should anyone with to see ALL the raw data please request it and I can email them the spreadsheet that I used to record, track and reduce all the data. Below, SCF is the final equalized (or as close as possible) skeleton correction factor, AN-Delay is animation delay, Kr is specific kill rate in the test battles I ran, Std Dev is the variance in terms of standard deviation over the 10+ battles for a given set of parameters (in terms of % of the average) and any relevant notations .

    SKELETON (+Spear Modifier) SCF / AN-DELAY (x1/10sec) / Kr (%/min) / Std-Dev (+/-%Kr) / NOTES #
    =======================================================================================

    INFANTRY/MELEE
    ==============

    SPEARS
    fs_fast_spearman (light_spear) 0.3 0 2.59 15% STANDARD SPEAR

    fs_spearman (light_spear) 0.3 0 2.47 19%
    fs_s1_hoplite (short_pike) 0.2 0 3.80 21% NOTE 1

    PIKE-PHALANX
    fs_thp_f_spearman (+long_pike) 2.0 10 4.37 52% NOTE 2
    fs_thp_f_spearman (+spear) 2.0 10 4.08 47% NOTE 2
    fs_fast_spearman (+long_pike) 1.8 10 3.82 27% NOTE 2
    fs_fast_spearman (+spear) 1.8 10 3.47 26% NOTE 2

    SWORDS
    fs_fast_swordsman 0.2 0 2.77 21% STANDARD SWORD
    fs_swordsman 0.2 0 2.98 18%
    fs_s1_gladius 0.2 0 2.83 15%
    fs_s1_barbswordsman 0.3 0 2.74 13% NOTE 3
    fs_2handed 0.2 4 2.77 14% NOTE 4
    fs_standard_bearer 0.2 0 2.19 12%
    fs_slinger_new (Melee Weapon) 0.3 0 ad.hoc - NOTE 6
    fs_dagger 0.2 0 1.85 - NOTE 7
    fs_fast_dagger 0.2 0 1.80 - NOTE 7

    CAVALRY/MELEE
    =============
    fs_hc_spearman 0.6 0 11.54 18% NOTE 5
    fs_thp_m_spearman 0.6 0 10.57 17% NOTE 5
    fs_hc_swordsman 0.6 0 13.84 19% NOTE 5
    fs_chariot_sword 1.8 0 ad.hoc >50% NOTE 6


    GENERAL NOTE:
    The reader will see that most values are significantly different from my target kill rate of 3.2%, the closest being the fs_sword at nearly 3.0. That is because the effect of SCF changing by +/- 0.1 are very sensitive and when I made such changes in an effort to zone-in to the target kill rate I found that I could never hit is dead-on. When I tried resolving the SCF to the 2nd digit (such as +/- 0.05) that the resulting kill rate was no different. I concluded that the SCF ONLY looks at the first decimal place and truncates anything after that. As such, I had to chose the SCF that got me closest to my target, as any change above or beyond the SCF shown here would be even further away from the target value of 3.2%. Because of this, some skeletons are (still) inherently better than others even with the modified SCF. Unfortunately, this is unavoidable - but at least these differences are now minimized.

    NOTE 1:
    The fs_s1_hoplite skeleton is the overhand-held spear hoplite. Originally, I had the hoplite skeleton set to an SCF=0.1 but in-game play seems to indicate an excessive number of get-ups after knockdowns for the enemy soldiers facing hoplites, even if those soldiers were quite weak (like skirmishers). For that reason I changed it to the next value higher of SCF=0.2. This value I have found to be good in-game and the post-battle analysis between hoplites and their enemy always shows to be reasonable. Unfortunately there is no way to set the SCF between the 2 values. If a player thinks that the hoplites are too strong with this combination, feel free to set SCF to 0.1 as I had originally had it.

    NOTE 2:
    The phalanx skeletons were the hardest to test because they had much more variance than other skeletons. In particular, the 2hp spearman (which looks more historically correct for how the phalangite holds the sarissa) had extremely high variances (see section4 test data). The Kr is much higher than target simply because if they were any lower the variance went even higher AND the average kill rate dropped drastically with minor changes in SCF (even though Kr was far less sensitive to going higher than this SCF value). It seems this skeleton is very non-linear in that lowering SCF (from these values) results in a rapid drop but raising SCF increases Kr only marginally. Raising Animation Delay from 0 to 10 seemed to reduce the variance somewhat.

    NOTE 3:
    The barbswordsman skeleton is significantly weaker than other swordsmen, thus requiring a higher SCF value than the other swordsmen.

    NOTE 4:
    The fs_2handed skeleton is only used for the falxmen and the vanilla Germanic berserkers. The animation delay of 4 seemed to stabilize the variance of this skeleton.

    NOTE 5:
    The reason for the higher values for cavalry melee weapons was again based on kill rates of cavalry vs. infantry; but this results in faster combat resolution for cavalry vs. cavalry. However a faster cavalry vs. cavalry resolution IS also historically accurate, as the cavalry battles always resolve far earlier than the infantry battle - so it has been left as is for the time being. I may revisit this in the future. Also, a side note, as you can see, the kill rates for the 3 cavalry melee weapons are slightly different. This is a happy coincidence since it means that, once the charge is complete, it is better for the cavalry unit to go to their swords as a second weapon which makes sense since the length of a Xyston or even a spear would be less effective in close melee. Most of the horse rider skeletons allow a second weapon skeleton.

    NOTE 6:
    This value is somewhat ad hoc because the testing had high variance and it was nearly impossible to keep a steady line-of-battle due to the push force of the chariots. However, based on the testing I did, 1.8 seems to be the most reasonable value on average and in-game play shows it to be reasonable as well. For some reason the fs_slinger_new also had strange variance but there is no other choice of skeleton to use because the same skeleton is used for the slinging animation and changing the skeleton for the melee weapon doesn’t give the proper animation.

    NOTE 7:
    During initial testing of the dagger skeletons, I determined that they have an animation that would be quite unrealistic in melee combat. They tend to do wide slashing arcs that would have absolutely no chance of wounding any man in amor or shield (let alone both). It occurred to me that anyone with a dagger would be using it much like a legionnaire with a gladius – quick stabbing strokes to unarmored areas. When I substituted the fs_s1_gladius skeleton to the dagger-wielding troops it looked very good, so I did not do any further testing on these 2 skeletons. I have left the Kill Rate for the default value I started with (SCF=0.2) for reference for anyone who is interested. For those who wish to retain this skeleton, raise the SCF to at least 0.3 (maybe more) since that skeleton behaves much as would a barbswordsman. If enough people request it, I can do the SCF correction testing on these as well at a later date.

    5. ANALYSIS OF TEST DATA
    Most of the analysis has been covered in the notes of section 4 since I thought it would be easier to read if the notes were together with the end results. However, some readers may be interested in the inherent (unequalized) differences between skeletons (with a constant SCF and equal ATT-DEF values). I found this to be useful when initially starting to iterate to a particular SCF.

    5A: Spear Relativity Chart:
    If the Kill Rate for fast_spear is considered “standard” at 1.000, then the others are as follows relative to it.
    This is the Relativity Chart For Spear Skeletons: SCF=0.3 and ATT=10, DEF=30 (resulting ATT-DEF=-20).

    s1_hoplite short_pike 2.759
    fs_spear short_pike 1.659
    -----------------------------
    fast_spear light_spear 1.000
    -----------------------------
    fs_spear light_spear 0.953
    fs_spear spear 0.867

    Changing a fast_spear (light_spear) to an fs_spear (light_spear) will decrease kill rate by 4.7% while going from fast_spear (light_spear) to fs_spear (short_pike) will increase kill rate by two-thirds. Also, the change going from fs_spear (short_pike) to s1_hoplite (short_pike) raises kill rate by 66% again. Since the increases are nearly equal I suspect this may have been intentional in the hard-coding.

    5B: Sword Relativity Chart:
    If the Kill Rate for fast_sword is considered “standard” at 1.000, then the others are as follows relative to it.
    This is the Relativity Chart For Sword Skeletons: For SCF=0.2, ATT=10 and DEF = 30 (resulting ATT-DEF=-20)

    2handed 1.206
    s1_gladius 1.039
    fs_sword 1.036
    -------------------
    fast_sword 1.000
    -------------------
    barbsword 0.781
    std_bearer 0.763
    fast_dagger 0.535
    fs_dagger 0.530

    Thus changing a sword-using skeleton from fast_sword to fs_sword (with no other changes) results in a kill rate 3.6% higher, while changing a fast_sword to a std_bearer will result in a kill rate 23.7% lower. Likewise going from a barbsword to a gladius will give a kill rate = 1.039/0.781 = 1.330 = 33% higher .


    6. CONCLUSIONS:

    All conclusions are contained in the Summary & Conclusions (Section 2) to avoid repetition here.

    As always, I welcome and encourage any review and constructive criticism of my work.
    I would rather have my work improved or even corrected if it means we all get more out of it.


    For me, like all work done by the modding community, this was a labor of love.

    In the final analysis, all we modders are trying to do is be creative about something we passionately enjoy and to get the most out of playing what is arguably the best game ever invented.


    Best Regards to All,
    …And Special Thanks to Aradan and his encouragement of me to complete this work.

    Sincerely, Vladimir “phalanx_man” Trbulin


    7. BIBLIOGRAPHY:

    (1) Polybius: The Histories
    (translated by W.R. Paton), Digireads Classic, 2009

    (2) Arrian: The Campaigns of Alexander
    (annotated by J.R. Hamilton), Penguin Classics, 1971

    (3) Peter Connolly: Greece and Rome at War
    Greenhill Books, 1981

    (4) Victor Davis Hanson: The Western Way of War – Infantry Battles in Classical Greece
    University of California Press, 1994

    (5) A&E Video: Decisive Battles of the Ancient World
    (hosted by Matthew Settle), History Channel, 2006

    (5) Jeff Champion: Pyrrhus of Epirus,
    Pen & Sword Military, 2009
    Last edited by phalanx_man; January 20, 2014 at 01:23 PM. Reason: Tried to Line up columns in tables & spelling.

  2. #2

    Default Re: RTW BATTLE MECHANICS: Part II – Equalization of Skeleton Lethality

    Nice job phalanx_man!

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •