First, a look under the hood at how damage is calculated. Some bits spoilered for those who wish to trust me with the maths and skip ahead to results, or who hate long posts
Armagan has posted the mechanics of how the engine calculates damage. It's a simple 2 term product formula based on a random damage roll (50-100% of nominal for an average of 75%) and a random target armor roll (same), with different coefficients in each term for blunt, piercing, and cutting damage.
In the first term, which represents the damage deflected/absorbed by the armor (armor soak factor, what it takes to stab a sword point thru the armor):
This result is then multiplied by the armor reduction factor (representing the damage / energy needed to push the sword in deep)
So which weapon does the most damage depends very much on what armor the target is wearing, making a comparison tough. Today, finally, after banging my head against this problem off and on for over a year, it dawned on me to take the integral, the area under the curve, for any given weapon over the entire range of armors in PoP and compare weapons based on the total damage they could dish out against everything.
I quickly modified this when I realized that dealing a point of damage vs 10 armor wasn't nearly as important as a point against 40 armor. So what I actually integrated was the product of (the average damage vs an armor rating) times (the armor it was inflicted against). So 1 point against 40 armor counts for a score of 40, where it takes 40 points against 1 armor to score the same. Integrate this D*A function over the range of armors and I'd have something that told me how well a weapon performed over the whole spectrum, but with a bias towards taking out top tier stuff.
So here's the result, for all armors up to PoP's maximum armor of 87 (reinforced Demonplate + reinforced gauntlets, if you're curious). First column is nominal damage that shows up in the weapon description (up to 75P for a ruby 2 hander). Second is the rating if it's a cutting weapon, pierce is third, and blunt is fourth.
Great, but how do I use this you say? Suppose I'm trying to decide between buying a Ravenstern long sword of 31C (IIRC, it's an example, don't beat me up about the details) and a spiked mace of 20B. I go to the 31 in the first column, look across to the 2nd, and see the sword is rated at -49. It's very common for high armors to result in negative average damage, as I'm ignoring speed, strength, and a host of other modifiers to look at the baseline. Since the rating system is biased toward performance against high armor, this negative rating doesn't scare me off. After all, the mace might be even lower. Now I go to the 20 in the first column, look across to the 4th for blunts, and see that the mace is rated at 70. So the mace is a better weapon against the broad range of targets, as it makes up for low damage against farmers with high damage against knights.
All this is ignoring reach and speed, but we already used calculus just to get this far
Armagan has posted the mechanics of how the engine calculates damage. It's a simple 2 term product formula based on a random damage roll (50-100% of nominal for an average of 75%) and a random target armor roll (same), with different coefficients in each term for blunt, piercing, and cutting damage.
In the first term, which represents the damage deflected/absorbed by the armor (armor soak factor, what it takes to stab a sword point thru the armor):
Cutting damage = 3/4 Nominal damage - 0.65 * 3/4 Nominal armor
Piercing damage = 3/4 Nominal damage - 0.35 * 3/4 Nominal armor
Blunt damage = 3/4 Nominal damage - 0.30 * 3/4 Nominal armor
Piercing damage = 3/4 Nominal damage - 0.35 * 3/4 Nominal armor
Blunt damage = 3/4 Nominal damage - 0.30 * 3/4 Nominal armor
Cutting RF = 1 - 3/4 Nominal damage / 100
Blunt / Piercing RF = 1 - 0.65 * 3/4 Nominal damage / 100
Blunt / Piercing RF = 1 - 0.65 * 3/4 Nominal damage / 100
I quickly modified this when I realized that dealing a point of damage vs 10 armor wasn't nearly as important as a point against 40 armor. So what I actually integrated was the product of (the average damage vs an armor rating) times (the armor it was inflicted against). So 1 point against 40 armor counts for a score of 40, where it takes 40 points against 1 armor to score the same. Integrate this D*A function over the range of armors and I'd have something that told me how well a weapon performed over the whole spectrum, but with a bias towards taking out top tier stuff.
So here's the result, for all armors up to PoP's maximum armor of 87 (reinforced Demonplate + reinforced gauntlets, if you're curious). First column is nominal damage that shows up in the weapon description (up to 75P for a ruby 2 hander). Second is the rating if it's a cutting weapon, pierce is third, and blunt is fourth.
Nom D DcA DpA DbA
1 -530 -373 -316
2 -514 -352 -296
3 -498 -332 -276
4 -482 -311 -255
5 -466 -291 -235
6 -450 -271 -215
7 -434 -250 -194
8 -418 -230 -174
9 -402 -210 -154
10 -386 -189 -133
11 -370 -169 -113
12 -354 -149 -92
13 -338 -128 -72
14 -322 -108 -52
15 -306 -88 -31
16 -290 -67 -11
17 -274 -47 9
18 -258 -26 30
19 -242 -6 50
20 -226 14 70
21 -210 35 91
22 -194 55 111
23 -178 75 131
24 -162 96 152
25 -145 116 172
26 -129 136 193
27 -113 157 213
28 -97 177 233
29 -81 197 254
30 -65 218 274
31 -49 238 294
32 -33 259 315
33 -17 279 335
34 -1 299 355
35 15 320 376
36 31 340 396
37 47 360 416
38 63 381 437
39 79 401 457
40 95 421 478
41 111 442 498
42 127 462 518
43 143 482 539
44 159 503 559
45 175 523 579
46 191 544 600
47 207 564 620
48 223 584 640
49 239 605 661
50 255 625 681
51 271 645 701
52 288 666 722
53 304 686 742
54 320 706 763
55 336 727 783
56 352 747 803
57 368 768 824
58 384 788 844
59 400 808 864
60 416 829 885
61 432 849 905
62 448 869 925
63 464 890 946
64 480 910 966
65 496 930 987
66 512 951 1007
67 528 971 1027
68 544 991 1048
69 560 1012 1068
70 576 1032 1088
71 592 1053 1109
72 608 1073 1129
73 624 1093 1149
74 640 1114 1170
75 656 1134 1190
1 -530 -373 -316
2 -514 -352 -296
3 -498 -332 -276
4 -482 -311 -255
5 -466 -291 -235
6 -450 -271 -215
7 -434 -250 -194
8 -418 -230 -174
9 -402 -210 -154
10 -386 -189 -133
11 -370 -169 -113
12 -354 -149 -92
13 -338 -128 -72
14 -322 -108 -52
15 -306 -88 -31
16 -290 -67 -11
17 -274 -47 9
18 -258 -26 30
19 -242 -6 50
20 -226 14 70
21 -210 35 91
22 -194 55 111
23 -178 75 131
24 -162 96 152
25 -145 116 172
26 -129 136 193
27 -113 157 213
28 -97 177 233
29 -81 197 254
30 -65 218 274
31 -49 238 294
32 -33 259 315
33 -17 279 335
34 -1 299 355
35 15 320 376
36 31 340 396
37 47 360 416
38 63 381 437
39 79 401 457
40 95 421 478
41 111 442 498
42 127 462 518
43 143 482 539
44 159 503 559
45 175 523 579
46 191 544 600
47 207 564 620
48 223 584 640
49 239 605 661
50 255 625 681
51 271 645 701
52 288 666 722
53 304 686 742
54 320 706 763
55 336 727 783
56 352 747 803
57 368 768 824
58 384 788 844
59 400 808 864
60 416 829 885
61 432 849 905
62 448 869 925
63 464 890 946
64 480 910 966
65 496 930 987
66 512 951 1007
67 528 971 1027
68 544 991 1048
69 560 1012 1068
70 576 1032 1088
71 592 1053 1109
72 608 1073 1129
73 624 1093 1149
74 640 1114 1170
75 656 1134 1190
All this is ignoring reach and speed, but we already used calculus just to get this far