Research

From Discworld MUD Wiki
Jump to: navigation, search

See Category:Pages with research marked for the pages tagged for further research.

The pages in the above link all have topics where one aspect is poorly understood, and would benefit from some research into how it is affected by skills, stats and other influences. You can help contribute to this Wiki by researching the marked topics and adding the research to the article's Talk page, or entering the conclusions of the research into the article itself.

Techniques for research

Outside influences and consistency

When testing a particular whether A affects B, you want to make sure that only A is changing when you measure B, lest you come to the wrong conclusion. For example, let us imagine you want to test the effects of evoking on Mother Twinter's Yarrow Enchantment. You cast the spell on an item and measure its enchantment with a divining bob. You then go to the hub and repeat the test with a higher evoking bonus, and the spell imparts a lot more enchantment. Here you might conclude that evoking has a strong influence on the spell, whereas in fact the increase may purely have been due to the higher background enchantment levels at the hub.

It is therefore important to keep as much consistent between different tests as possible:

  • Try to perform all your tests in the same room (though spell researchers beware - this will increase the background enchantment levels. Instead try moving around similar rooms in the terrains, or charging shards between castings).
  • Perform all your tests on the same type of target.
  • Perform all your tests at roughly the same time of day.

Randomness, repetition and quantification

Most actions on the disc have a fair amount of randomness associated with them, thus, in order to get meaningful results you need to:

  1. Quantify the result of the action. This means, finding a way to assign it a number. For example, 'I cast NES and it burned a hole straight through the target' isn't actually a very useable result. 'I cast NES and it did 2567hp damage', on the other hand, is very handy.
  2. Repeat your experiment several times. I recommend at least 10.
  3. Discard any outliers - that is, figures that are results that are clearly much higher or lower than the rest. These usually happen due to flukes (high success/failure on a skillcheck), and unless you're specifically testing fluke effects, will throw off your results. For example, if you're testing bashing someone with a Mighty Hamster Mace and it does 250, 307, 142, 189, 2, 208, 331, 1358, 166, 333 hp damage, then discard the 2 and 1358, as they're far out compared to the rest.
  4. Average your results. Add them up and divide by the number of times you performed the action.

Saturation and quantization

Saturation is where the MUD just starts reporting all results above or below a certain level with the same reading. For example, when testing Mother Feelbright's Busy Bees, you can get readings of: 5 bees, many bees, 12 bees, many bees, 18 bees, 6 bees, 3 bees. In these results, 'many bees' is a saturated value - it could mean any number that is 20 or above.

Saturation is bad, because it makes it difficult to determine what those values actually are, and often ends up with them having to be discarded.

Therefore, you should try to do tests which avoid saturation if at all possible. For example, in the test above, the tester could throw less honey, or degrade their skills, such that they never saw 'many bees'.

Quantization is another problem - it is where your results only fit into a few of the possible categories. For example, if you measured enchantment stages 100 times and got 60x 'Occasionally pulses' and 40x 'Slight glow' then you have only covered two out of the 10 possible categories. Quantization also tends to throw off results, so try to avoid it by making sure your results cover as wide a range as possible.

Skill relationships

One of the most common pieces of research needed is which skill affects a given action. The easiest way to determine this is:

  • Record the result of the action with your basic, unstatted skills.
  • Identify all the skills that reasonably could affect that action. For example, for most spells this will be all the skills used in the spell's stages, plus the magic.spells.offensive/defensive/misc.
  • Now work out how to change one of these skills in isolation. This includes both increasing and decreasing that skill. This can be done via a variety of means:
  • Test the action again, record the result along with the altered skill.
  • If there's a significant difference in the result, congratulations - you've found a skill dependency.

Graph fitting

What follows in this section is mostly scary maths - if you don't think you can do it, then don't panic! Determining the skill dependency above is already a very useful result - please insert your finding into the article. Then paste your raw data into the talk page, and someone else can fit it to a graph.

Once you've identified a relationship, collect results with several different levels of the input skill/stat. You now need to try and fit a curve to your results and produce an equation that describes how the input affects the output.

There are many common forms of relationship on the Disc:

Pass/fail skill relationship
Pass-fail graph

This has a characteristic 'flattened S' shape graph. Note that the graph usually won't exactly reach 100% success - there's always a small chance you'll fail something. The useful results from such a relationship are:

  • The bonus where you have a 5% chance of success (A)
  • The bonus where you have a 50% chance of success (B)
  • The bonus where you have a 95% chance of success (C)


Linear relationship
Linear graph

This is where your data points lie (more or less) along a straight line. Here, the data is described by the equation

Y = Ax + B

And we want to know what A and B are. These can be derived as follows:

A = (average(xy) - average(x)*average(y))/(average(x^2) - (average(x))^2)
B = average(y) - A * average(x)


Exponential relationship
Exponential graph

This is where there is an increasingly steep curve. It often applies to things relating to cost (XP or money). Here, the data is described by the equation:

Y = A exp(Bx) + C

To get A, B and C, you need to:

  • Inspect your graph and see where it crosses zero on the X-axis. The Y-value here is C.
  • Subtract C from all your Y values.
  • Get A and B as follows:
B = (average(xln(y)) - average(x)*average(ln(y))/(average(x^2) - (average(x))^2)
A = exp(average(ln(y)) - B * average(x))


Logarithmic relationship
Logarithmic graph

This is where there is an increasingly less steep curve. It often applies to things relating directly to stats. Here, the data is described by the equation:

Y = ln(A + x) + B

A and B can be derived as follows:

B = ln((average(x*exp(y)) - average(x)*average(exp(y)))/(average(x^2) - (average(x))^2))
A = average(exp(y))/exp(B) - average(x)