awesome! Do you study this stuff for school/use it for work?
I recently earned a Ph.D. in physics, but I'm not sure how relevant that is to "this stuff"
.
I wonder what the outcome would be if you used modded metals? Given lead's density, it may be hellaciously damaging (it always seems to be in my games.) Platinum should have the same effect, but moreso. Aluminum, being light and stiff, would probably turn out like candy...
[/musing]
I ran platinum bolts vs. steel (helm, breastplate, chainmail, greaves, gauntlets, low boots), and found that it took only 14.4+/-0.4 hits to kill each dwarf and that all hits resulted in serious injuries (none just bruises). So it appears your suggestion is correct, and they do in fact do significantly more damage. They also don't seem to be slowed down much, if at all, by chainmail. I'll do a full run soon...
That is interesting, because up until now bolt material had to have a significantly larger shear yield than armor material in order to cause tears: All bolts tore unarmored and leather, bronze/iron and higher tore copper, only steel and candy tore iron/bronze, and only candy tore steel. I suppose it is logical that weight also plays a role in this.
I was also surprised by this for exactly the reasons you stated. It is also possible that platinum bolts aren't causing tears through chainmail, but rather always result in chipped/broken bones due to the high force. I will investigate this further.
Out of interest, what are the variances/SEMs on your samples? A lot of people are talking about silver being better than iron/steel, but to me that doesn't look like it would achieve significance if you ran an ANOVA on it. Still an interesting result regardless: I had assumed silver would be a poor quality material but it is as good, if not better, than the big players.
Unfortunately, I opted for a very simple way of obtaining my means of arrows fired: counting all occurrences of "the flying" in the gamelog and then dividing it by the number of dwarfs which took part in the experiment. So I do not have direct access to standard deviation/SEM data, and I cannot perform ANOVA. I agree that silver-iron or silver-steel comparisons would probably result in ANOVA reporting borderline significance at best. That is why the conclusion of my study is "use any metal (except candy) against metal armor, and anything against unarmored opponents".
I can make a crude estimate on the SEM value of the Average of Fired Bolts (AofB). The AofB of most tests was around 13-18. I think it is safe to assume a standard deviation of no more than 25. This would mean that 95% of all bolts fall within <18-50,18+50> -> <0,68> (since You can't use up negative numbers of bolts). SEM = standard deviation divided by the square root of samples. There were 1000 samples per experiment. square root of 1000 = around 31. SEM = 25/31 = around 0.8. So an AofB derived from 1000 samples has a 95% chance to find itself within 1.6 of the true mean, assuming that the standard deviation of the samples is 25.
Hopefully I haven't made some obvious mistake along the way.
This is totally correct, and your estimate of a standard deviation of 25 is quite reasonable. I record the number of hits on each dwarf individually and then from this calculate the standard deviation and then divide by the square root of the number of dwarves. From this I get SEM of 0.5 to 0.8, depending on the individual experiment. Your SEM might be a bit higher for the wood/bone bolts, as it tends to be proportional to the total number of hits.
One note - since you are counting "the flying", you are actually recording the number of
hits on dwarves, not the number of bolts fired. It is likely there are few misses in your setup, but these are not recorded in any way in the gamelogs.
Also, just an idea for automation: instead of setting your experiments up labouriously by hand, I wonder how easy it would be to create a macro which ran individual experimental sets on repeat, exporting the combat log in between runs. That way you could just leave the computer on and let it run for hours/days, coming back only to adjust the macro for the next condition. That'd vastly improve your sample size and reduce your workload.
Both me and Pirate Bob did use macros. Mine is a fairly simple keyboard macro and I use it to set up a 1000 dwarfs at a time. Then I change their equipment to that of the defender and run it again. Each run is about 2 minutes. After everything is set I unpause the game and wait 5-10 minutes for the slaughter to end, then copy the gamelog to its own "Y vs X" text file, which I can then run data extraction scripts on. Mine is a crude setup, but it works fairly well. I was wondering how Pirate Bob's data gathering works - it seems on a much higher level.
The scripts and macros I use are posted on
DFFD. Anyone (and especially Zivilin) should feel free to use/modify them if they desire. It sounds like Zivilin needs some Dwarven graduate students if he is setting up each experiment individually
.
I also started with just keyboard macros within DF. I assume that Zivilin also figured out that one needs to manually trim out most of the superfluous commands to get the macros to run quickly. I also found I needed to delete most of the non-dwarf creatures from the raws to speed things up. I then wrote a perl script which modifies the raws, copies gamelog.txt to another file named with the armor/ammo used, and then sends keypresses to DF to start the next macro run. This allows me to run a complete set of armor vs. ammo combinations with no user input. Unfortunately the keypress part is Linux specific, but I'm sure there's something equivalent for windows if someone wants to figure it out.
My analysis also uses a perl script, and makes heavy use of perl's regular expressions to parse the log files. In summary, scans through each line of the log, and if it contains "flying", it checks the dwarf number in the same line, and increments the number of hits on that dwarf. Then, when it finds a death/unconcious/falls over for that dwarf, it sets the appropriate entry to the number of hits on that dwarf so far, and locks that category (so that it only counts the first unconcious/falls over). For armor effectiveness, looks for the word "through" in each line, and if it's there, then checks for which injuries resulted, and if there were deflections. I can post a heavily commented version of the script later if people are interested in understanding exactly how the code works, but I don't have time right now.
I registered for these forums just to post how awesome this is. Faith in humandwarfity restored, etc.
I am honored that our research could evoke such drastic action
I also am similarly honored if my small contribution to this work played any part in your decision.