Thursday, 24 July 2014

How far can you see on a hex map?

One of the key aspects of wilderness geography is being able to assess the lay of the land.  This is one thing that the traditional, top-down way of representing geography doesn't say much about.

If you walk north west from Nivereen, you'll emerge from the forest and be greeted by a view of the mountains across the valley.


That view might look something like this:


Or does it? Can we actually see the mountains from there?  What about if we climb the jagged hills to the west of the forest spur?  How far can we see then?

How far is the horizon?

It turns out that the main obstacle to seeing faraway landforms - besides atmospheric interference like fog or rain - is the curvature of the earth.  A consequence of this is that the viewer's altitude is a key factor in how far they can see. (If you go high up enough that you're in space, for instance, you could see nearly half the planet!)

Wikipedia has a wonderful page on the horizon that gives us all the info we need.  The few equations we need aren't that complicated:

Distance to Horizon (miles) = 1.22 x sqrt( observer's height in feet )
Distance to Horizon (km) = 3.57 x sqrt ( viewer's height in meters )

For a hypothetical, 6' tall viewer, this puts the horizon around 3 miles.  (As Steamtunnel pointed out, this is one argument in favor of using 6-mile hexes: an adventurer in the middle of a hex could see right to its edges.)

A 6' tall adventurer standing on top of a 30' town wall, however, could see further, about 7 miles.  An adventurer at the edge of a plateau, 200' above the plains below, could see 17.5 miles - quite a bit further.

Seeing Faraway Tall Things

Most of the time our adventurers are not looking at flat, featureless plains. The more interesting question is stuff like: how far away can I see that tower?  Can I see the mountains?

It turns out the answer is unexpectedly simple: all you need to do is know the horizon distance for the viewer's altitude, the horizon distance for the target's altitude, and then add them together.

So if I'm on the town wall, and I want to know how far away I could see a 100' tall wizard's tower, the answer is:

1.22 x [ sqrt( 6' ) + sqrt( 100' ) ] = 15.2 miles

Now, this is the distance at which we could just barely see the very tip of the tower - we probably wouldn't be able to pick it out of the grass.  Let's say we need to be able to see at least half the tower to recognize it, that gives us:

1.22 x [ sqrt( 6' ) + sqrt( 50' ) ] = 11.6 miles

On a hex map of six miles, we'd be able to make out the tower a full 2 hexes away.

The Meaning of Altitude

A key point I've glossed over so far is how to work out 'altitude'. This isn't elevation above sea level, but the height above the prevailing terrain.  If you're on a plateau 2000' above sea level, that doesn't help you see further along the plateau.

Only add the plateau to your height if you're looking down off it. If you're looking along the plateau, it doesn't count (because it will be the earth-curved plateau itself that eventually prevents you seeing further).

A Linear Approximation

Now of course, taking square roots at the table while juggling all the other GM duties is too much to ask, but I have a simplification that works well enough for the distances we care about:

6 miles + 1 mile / 50' of height

So if you're on a 200' cliff, looking down across a plain to see a distant tower or mature forest (50' to its halfway point), you can see it 11 miles away.

From flat plains, foothills (say, 1000' tall, resolvable when you can see the top half - so 400') could be seen 14 miles away (8+6).

From that same vantage point, large mountains (6000' above the plains, 3000' to the midpoint) could be seen 66 miles away.

Flying on a griffin at migratory altitude (e.g. 5000'), you could see those same mountains from 166 miles away.  (At this point, most likely the limits of atmospheric clarity would be involved, even in very clear air.)

If you climb the tallest tree in the forest, putting you 10' above the canopy, you could see the top 50' of the strange rock spire formation (that protrudes 100' above the trees) from 8 miles away.  (The top of the trees, here, is the altitude baseline.)

A Simple Legend

To help during play, I might work out a simple legend for various terrain types on my hex map. This just takes the height divided by 50', then by my hex width to work out a "visible-distance contribution".

Here's a simple legend for a 12-mile hex map with five types of terrain:

Mountain Peaks (5000-6000'): 8 hexes
Mountain Slopes (2500'): 4 hexes
Foothills (1000'): 2 hexes
Treetops (100'): 0 hexes
Rolling Lowlands (15'): 0 hexes

To use this, work out the height of the viewer and the target over the prevailing terrain, add those together, and add a free half-hex.

In the foothills, looking across more foothills toward distant mountain slopes?  4.5 hexes  (8-4 + 0 + 1/2)

In the treetops, looking to see where the foothills start?  2.5 hexes (2 + 0 + 1/2)

If you're on a mountainous slope (4) looking out across a vast, rolling flood plain (0) to a massive mountain range on the far side, you could make out the peaks (8) from 12.5 hexes away.

Easy peasy!