Research:Judge/Archive 1

From Discworld MUD Wiki
< Research:Judge
Revision as of 19:06, 24 July 2011 by Frazyl (Talk | contribs) (put infobox example in pre to prevent it adding category, also the modern infobox doesn't display it right)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
Filing cabinet.gif This is an archive of past research. Do not edit the contents of this page. If you wish to update research from this page, please create a new section on the current research page, and link to sections in this page if neccessary.

Judge quality

I got a few witches to judge their brooms (successfully), and they gave the following results:

ad.ev.we bonus judge
100 Extremely good
142, 202, 211 Very good

This would imply that the data in the mudlib about ad.ev.we pushing up the returned quality at lower levels appears to be correct (if the rating for a broom is 80). Unfortunately, this would also imply that the 'judge rating' that everyone has been putting in weapon infoboxes is useless...

It'd be more useful to get some datapoints from the higher bonuses; in particular 400+. Unfortunately, Flatline's page suggests that the highest anyone's got is 330.

--Chat 21:06, 26 July 2009 (UTC)

I wouldn't call it completely useless... point taken, though. :(
Yet, it looks like if someone with a bonus of at least 300 judges it, an "excellent" rating will be reliable, and an "extremely good" rating nearly so... maybe we could replace the bit in the template with a more specific set: judges with 200-249 bonus, judges with 250-299 bonus, judges with 300-349 bonus, something like that. --Ilde 21:58, 26 July 2009 (UTC)
I was thinking we should just replace it with the weapon's 'rating' from here, however, that might be a little too obscure. Ideally, of course, we could replace it with min/ave/max damage, however, that requires the tedious 'judge this weapon a great many times' step, which many won't want to do. --Chat 22:03, 26 July 2009 (UTC)
Giving the rating is probably our best bet--but how would we get the precise rating? I guess we could get a range of possible ratings, though. If you have a bonus of 160 and it judges "very good" for you, then you can put it as 69 - 80... then if someone else with a bonus of 280 comes along and also judges it as "very good" then the range is narrowed to 77-80 (or if they judge it as "rather good" then it would be narrowed to 69-76). But, to use that system, I'd want to be very sure that the bonus vs. reported quality table was accurate. --Ilde 04:08, 27 July 2009 (UTC)
OK, I've now created an adaptable Template:Judge and shoved it into Template:Infobox weapon. The way this works is:
  • All the old judge info is now automatically converted into broad rating ranges, so we've still got something useful out of the old data.
  • You can supply various combinations of new data (eg. bonus) into Template:Infobox weapon, and it will automagically come up with a more accurate rating and/or actual base damage characteristics. See Template:Judge/doc for more info on what you can provide.
--Chat 19:42, 27 July 2009 (UTC)
Ooooo, brilliant! *a few previews later* Alright, so let's see if I've got this right (not based on an actual weapon):
{{Infobox weapon
 | Weight = 1 lb.
 | Commands = [[Slash]]
 | Hands = 1
 | Type = Sword
 | Judge = Good
 | Bonus = 250
 | Chance = 90
}}
Well... that doesn't look quite right. The minimum is bigger than the average and the maximum is negative? It seems to persist no matter what I set the bonus as. Is my syntax wrong? --Ilde 20:39, 27 July 2009 (UTC)
Yes, the 'Chance' variable should be a percentage (so in the case above, 90).
Note also that this will only work if the judge, chance and bonus are consistent with real weapons - so don't be too surprised if putting random values in produces odd-looking results (the values above cause an impossibly low max damage for the average, which leads to all sorts of mayhem). For a real-life example of this working, see Katana_(custom weapon). --Chat 20:54, 27 July 2009 (UTC)
Aha! I see now. I'm just used to using decimals for percentages. *edits* --Ilde 21:10, 27 July 2009 (UTC)

I think the specifics of the table are wrong... I got a "pretty poor" result (for a pickling stick) with an ad.ev.we bonus of 183. According to the table the worst result I should be able to get is "quite poor". --Ilde 20:35, 4 August 2009 (UTC)

Nope, the table's fine - it's just showing what you get at specific levels, rather than across the entire range. At bonus 150, the worst you can get is 'Quite poor' - but you have 183, which is a higher bonus. The exact result for 183 is that you can get 'Pretty poor' for weapons of rating 0 - 5. --Chat 20:43, 4 August 2009 (UTC)
Ah, I see. I thought it meant that starting at that bonus you'd get those results; thanks for the clarification. --Ilde 21:29, 4 August 2009 (UTC)


And just to further cement that

  • Judge category is subjective
  • There are more than 10 judge categories

I have the following results from getting various people to judge pickling sticks (rating presumably close to zero):

ad.ev.we bonus judge category
156 Quite poor
202 Poor
211 Poor
232 Rather poor
252 Rather poor

Note that 'rather poor' isn't a reading that could exist if there were only 10 categories; note also that the categories presented confirm the table in the article.

--Chat 18:29, 14 September 2009 (UTC)


Judge in the released mudlib

I'll be trying to determine more precise data for the influence of adventuring.evaluating.weapons on normal judge based on info in the distribution mudlib. Since math slip ups are easily made, I'll document it here.

If I got it right by reading the source of the released mudlib, the messages are determined by the integer rating (all other variables are also integers) so that 0 = first message, 1 = second message, etc.

   #define QUEST_AVE 140
   #define QUEST_MAX 300
   
   grain = sqrt( player->query_skill_bonus( SKILL ) / 2 );
   
   if ( grain > 14 )
     grain = 14;
   
   rating = QUEST_AVE * max + QUEST_MAX * ave;
   rating = ( grain * rating + QUEST_AVE * QUEST_MAX ) /
     ( 2 * QUEST_AVE * QUEST_MAX );
   
   rating += 14 - grain;

It follows that the player's bonus can only change the result by incrementing the integer "grain", which is capped at 14 and the bonus cannot be below 0.

The function to determine the minimum of bonus for a given grain value should be:

   bonus = pow( grain, 2 ) * 2

Therefore, bonuses in the same range in the following table should all give equivalent output given the same input:

Grain value Min bonus Max bonus
0 0 1
1 2 7
2 8 17
3 18 31
4 32 49
5 50 71
6 72 97
7 98 127
8 128 161
9 162 199
10 200 241
11 242 287
12 288 337
13 338 391
14 392 infinity

I'll place these ranges into the table, keeping the existing values in the appropriate ranges.

--Frazyl 19:24, 24 April 2010 (UTC)

Mmm. It is stated in the text above the table in the article that the minimum bonus to get all possible ratings (0 to 100) is 170. This does not fit at the start of one of the ranges I mapped above. I'm not sure what to think of this, I still have some Math to do to plot the possible ratings for each grain values (that map to bonus ranges).

--Frazyl 23:35, 24 April 2010 (UTC)

170 is the minimum bonus required for it to be possible to succeed in judging a weapon, irrespective of what that weapon's actual rating is (ie. below this you have no chance of successfully judging a weapon whose rating is 100). 392 is the minimum bonus necessary to be able to see any of the possible judge categories when judging.
--Chat 13:08, 25 April 2010 (UTC)
Well there's the difficulty passed to the taskmaster for the task which is the average damage (which is not supposed to be above 140 according to weapons.c) + 25, 140 + 25 = 165.
Any bonus below the difficulty fails in the taskmaster code in the distribution mudlib. Above that in the margin it might succeed.
The taskmaster calculates the margin = 38, and if the bonus is above margin + difficulty then it succeeds.
(A margin is calculated before calling perform_task but it doesn't seem to be used anywhere. If it were used with max=300 it would be 70.)
Anyway, according to that I get a minimum bonus of 165 to have a change to judge all weapons within specification...
--Frazyl 20:25, 25 April 2010 (UTC)
I'd take the 140/300 limits in weapons.c with a giant grain of salt - it's just a warning, not a hard-coded restriction; and I'd be willing to bet there have been at least some creators that didn't feel like heeding that warning (and the same goes for the hilarious commented out code in judge.c telling players to inform creators if their weapons are too powerful)...
As for how the max judgeable rating is derived:
  • Max rating for given average occurs when maximum damage is twice average damage.
  • Therefore: 50(Ave/140 + 2 * Ave/300) = Rating
  • => 29/42 * Ave = Rating
  • Min bonus to judge is (Ave + 25)
  • => 29/42 * (Bonus - 25) = Rating (formula in article).
  • Plug in rating of 100, giving Bonus = 169.8; round to 170.
  • Note that this equates to an average damage of 145; see comments above regarding averages over 140.
--Chat 23:50, 25 April 2010 (UTC)

We can substitute the above equations to get rating category as such:

   rating = floor( ( grain * (140 * max + 300 * ave) + 42000 ) / 84000 ) + 14 - grain;

Of course, there's rating categories and rating values. Mixed those up. Right. Fixing the above, it only finds the category for the rating, not the values in the table.

--Frazyl 21:44, 25 April 2010 (UTC)

Weapons

Weapon data from Inige with rating determined with judge against.

weapon weight
(lb)
judge rating type
noncustom katana excellent 96 sword
war hammer excellent 96 mace
pollax excellent 96 polearm
klatchian steel sabre excellent 96 sword
short steel baton &&&&+900 1 excellent 96 mace
iron war club &&&+4500 5 excellent 96 mace
sledgehammer &&&+8500 9 4/9 excellent 96 mace
one-handed steel axe &&&+3600 4 excellent 96 axe
hunting sword &&&+5600 6 2/9 excellent 96 sword
shamshir &&&+3000 3 3/9 excellent 96 sword
fine sabre &&&+3000 3 3/9 excellent 96 sword
black shafted mace &&&+4000 4 4/9 excellent 96 mace
kodachi &&&+2400 2 6/9 excellent 96 sword
bastard sword &&&+3600 4 excellent 96 heavy sword
ruby-hilted dagger &&&+1400 1 5/9 excellent 96 dagger
delicate black stiletto &&&&+800 8/9 excellent 96 dagger
thief's dagger &&&+1000 1 1/9 excellent 96 dagger
leaf-bladed dagger &&&+1200 1 3/9 excellent 96 dagger
ornate warhammer &&&+6000 6 6/9 excellent 96 mace
retribution &&&+6000 6 6/9 excellent 96 mace
senssu fan(open) &&&+1500 1 6/9 excellent 96 misc
halberdic spear &&&+9000 10 excellent 97 polearm
custom katana normal &&&+2900 3 2/9 excellent 97 sword
two-handed war hammer &&&+4200 4 2/3 excellent 97 mace
two-handed war sword &&&+8000 8 8/9 excellent 97 heavy sword
war flail &&&+4300 4 7/9 excellent 97 flail
black iron flail &&&+5000 5 5/9 excellent 97 flail
curved two-handed sword &&&+4000 4 4/9 excellent 97 heavy sword
double-headed war axe &&+13500 15 ? excellent 97 axe
klatchian steel hatchet &&&+1800 2 excellent 97 axe
glaive &&&+4500 5 excellent 97 polearm
borogravian earspoon &&&+5400 6 excellent 97 polearm
knight's halberd &&+18000 20 excellent 97 polearm
evil death ray &&&+9000 10 excellent 97 axe
great sword &&&+6100 6 7/9 excellent 97 heavy sword
klang &&&+9000 10 excellent 97 heavy sword
two handed scimitar &&&+5500 6 1/9 excellent 97 heavy sword
double handed sickle &&&+5700 6 3/9 excellent 97 misc
nagimaki &&&+5000 5 5/9 excellent 97 polearm
nodachi &&&+6000 6 6/9 excellent 97 heavy sword
custom morning star, v long 3 balls excellent 97 flail
custom nodachi &&&+6300 7 excellent 98 heavy sword
custom nunchaku v long excellent 98 flail
custom katana heavy &&&+4200 4 6/9 excellent 98 sword
custom sensetsukan v long &&&+3000 3 3/9 excellent 98 flail
tetsubo excellent 98 mace
double edged broad sword &&&+6800 7 5/9 excellent 98 heavy sword
two-handed sword &&&+5600 6 2/9 excellent 98 heavy sword
two-handed axe &&&+5500 6 1/9 excellent 98 axe
axe of managerial ire &&&+6000 6 6/9 excellent 98 axe
blackened iron staff &&+10000 11 1/9 excellent 98 polearm
steal naginata &&&+6000 6 6/9 excellent 98 polearm
sode-garami &&+10000 11 1/9 excellent 98 polearm
sarilak &&&+6300 7 excellent 98 heavy sword
custom yari &&&+6000 6 6/9 excellent 98 polearm
custom naginata &&&+6000 6 6/9 excellent 98 polearm
scythe &&&+5400 6 excellent 99 polearm
custom daikatana &&&+9000 10 excellent 99 heavy sword
custom zanbato &&+13500 15 excellent 99 heavy sword
wyrm sword &&&+6300 7 excellent 99 heavy sword
two-handed black shafted mace &&&+5000 5 5/9 excellent 99 mace
stained battle axe &&&+3600 4 excellent 99 axe
worm sword fully trained &&&+6300 7 excellent 100? misc
duan jian excellent heavy sword
custom greatsword excellent heavy sword
mythic sword excellent heavy sword
ono excellent axe
custom axes excellent axe
blackened dao excellent sword
blackened katana excellent sword
blackened ninjato excellent sword
blackened wakizashi excellent sword
custom wakizashi normal excellent sword
custom wakizashi heavy excellent sword
custom tanto normal excellent dagger
custom tanto long excellent dagger
custom fencing blade excellent 96 sword
custom long sword excellent sword
custom dagger genua excellent dagger
custom warhammers excellent mace
custom short sword excellent sword
custom excellent kfl knives excellent dagger
tiger fang &&&+1400 1 5/9 excellent 96 sword