Thursday, 12 November 2015

Logarithmic Scales

Previously I've talked about the logarithmic scales that Explore uses for measurements. An example of a logarithmic scale is 1, 2, 4, 8, 16. This is a very useful system for scaling things up/down, in particular by choosing the scales carefully you get +1 on one scale gives you +1 on another scale. For example, +1 weight corresponds to +1 height and also +1 lift.

I've been working on tweaking the scales I use, which has required coming up with some new progressions. Anyone playing the game doesn't have to care how I came up with the numbers, but over at Gaming Ballistic, Douglas Cole has been talking about why he loves the GURPS logarithmic scale so I thought I should briefly discuss how I came up with my scale rather than any other version.

In fact one observation I have from playing Explore is that the players don't need to even think about the scale to play the game, it's just the underlying reason why the game fits together without any sharp corners to get snagged on.

Doubling Every N
The first approach to creating a logarithmic scale is one where it doubles every +N (e.g. 2, 3, 4, 6, 8, 12… doubles every +2).

The scale I choose then is:
N, N+1, N+2, … 2N-1
2N, 2(N+1), 2(N+2),… 2(2N-1),
4N, 4(N+1), 4(N+2),… 4(2N-1),
For example, for doubling every +4 the scale is:
4, 5, 6, 7,
8, 10, 12, 14,
16, 20, 24, 28,
You then extend this in the reverse direction to low values:
1, 1 1/4, 1 1/2, 1 3/4,
2, 2 1/2, 3, 3 1/2,
This has several good points:

  • It has integers for high values, nice fractions for low values.
  • Each scale contains all the earlier scales, so all include 1,2,4... and all scales apart from the first two include 10, 20, 40 etc.
The downside is that at high values the scale has values such as 1024, instead of easy to work with numbers such as 1000.

Tenfold Every N
The alternative approach is to a tenfold increase every +N (e.g. in GURPS you have 1, 1.5, 2, 3, 5, 7, 10, 15, 20 etc.).
With this approach, however, if N is large (i.e. there is a slow increase) you get a lot of decimals instead of nice fractions. In our earlier doubling every 4 scale, we would be x10 every +13. This gives:
10, 12, 14, 17, 20, 24, 29, 35, 41, 49, 59, 70, 84, 100
You can tidy this up a bit, e.g. round to nearest 5 or 10, but below 10 the values become nasty decimals. 
1, 1.2, 1.4, 1.7, 2, 2.5, 3, 3.5, 4, 5, 6, 7, 8.5, 10,
(10), 12, 14, 17, 20, 25, 30, 35, 40, 50, 60, 70, 85, 100
This isn't an issue in some games, but a slow increase like this is exactly what has proved to be necessary in Explore.

Combining The Approaches
The solution I'm favouring is to use the doubling scale until you get to a value which is 10x a previous value and then switch to the 10x scale. For example you can switch at 10, 20, 40, or 80. (Note you cannot switch until after the scale has only got 1/2 fractions, i.e. above 2=>20 in the example.)
1, 1 1/4, 1 1/2, 1 3/4,
2, 2 1/2, 3, 3 1/2,
4, 5, 6, 7,
8, 10, 12, 14,
16, 20,
and then switch to 10x...(20), 25, 30, 35,
40, 50, 60, 70,
80, 100, 120, 140,...
Swapping from feet to inches, pounds to ounces
When you get to small sizes it can be useful to switch to a smaller unit, such as from feet to inches, or pounds to ounces. All scales contain 16, and almost all contain 12. Hence you can start the scale using the small unit (e.g. inches), and when you get to one large unit (e.g. foot) you start again at 1.

For example, there are 16oz to 1lb, so we can have
1oz, 1 1/4 oz, 1 1/2 oz, 1 3/4 oz,
2 oz, 2 1/2 oz, 3 oz, 3 1/2 oz,
4 oz, 5 oz, 6 oz, 7 oz,
8 oz, 10 oz, 12 oz, 14 oz,
16oz = 1lb
… and then restart at 1 on the lb scale.
(1lb), 1 1/4lb, 1 1/2lb, 1 3/4lb,
2lb, 2 1/2lb, 3lb, 3 1/2lb,...
Sometimes you might have to move the join point to be higher up so that the fractions are units on the smaller scale e.g. to avoid having 1 1/8 feet.

Why Logarithmic Not Exponential?
The values in the scale increase exponentially, so why do we call the scale "Logarithmic"? It's because we're saying Dwarves are height -4 compared to a Human. So the scale height in feet => height rank is the act of taking the logarithm of the height. This makes it like logarithmic scales in science.

Does this all matter?
Probably not!

Anyway I can now go back to talking about proper stuff. Next up is how much can you lift and how fast can you run - both of which incidentally use these scales - but which are also of some actual practical use!


  1. Logarithmic scales lead very nicely to the idea of "preferred numbers", which I've made use of to replace the OD&D XP system. Instead of doubling each level, PCs now require 1,2,5,10,20,50,... etc. to level up.

    I then took a look at the monster XP scales. Monsters give both XP for HDE, and GP (actually SP since I use the silver standard). I kept OD&D's 100 XP / HD, which gives diminishing returns at higher levels, but give a 1,2,3,6,10 preferred scale for coins.

    The advantage of this is that at low levels, when single monsters are most deadly, XP from HD dominates, but at high levels the coin dominates, and also keeps up with XP requirement (and don't forget that wondering monsters don't carry treasure). And it keeps the numbers nice and easy to remember!

    However, note the 10^(1/3) for players, and 10^(1/4) for monster treasure, meaning that there's a gradual reduction in gains, roughly 10^(1/12). This means that you either have to seek out increasingly tough monsters to keep going (preventing the treadmill), or change your play style to domain management.

  2. This "every n categories is * 10" model you suggest (like GURPS) is easier to remember than what I do, but I prefer keeping the ratios closer to a constant - which is better depends upon the needs of the game. For OD&D simplicity is probably better. I like your observation that the different rates of growth has an effect - it's good to see that you can make these decisions and that they have an effect on the game. Your switch from monster XP to gold is something that's making me think, which is a good thing!