The Hex Crawl Encounter Generator has been updated.
After more work than I expected I finally came up with a system for describing environments and comparing them to the habitats that the monsters live in. I ended up with six properties, Civilization, Climate, Aquatic, Terrain, Vegetation and Setting.
Civilization is a measure of how actively patrolled the area is, I used the Adventurer, Conqueror, King divisions of Civilized [Patrolled], Borderland and Wilderness. With this variable I'm controlling the frequency of encounter types (Inhabitants, Monsters and Ruins). Most Civilized encounters will be with the local inhabitants, as you would expect. Borderland encounters tend to have more monsters and ruins, while Wilderness encounters with with (possibly) friendly inhabitants are infrequent.
Climate also adjust these chances, the further away from Temperate the better the chance of running into something worth killing. The same with Terrain as you move off of Plains to rougher ground or out or under the water and with Vegetation. However these variables primarily are used to filter what you will encounter by what actually lives in the habitat.
I use Aquatic as a separate property from Terrain, although in the Encounter Generator it shows up in the Terrain control. I spun it off as it's own property in order to take into account creatures, such as crocodiles, polar bears and sahaugin that may be encountered on the land and on the sea.
I look at Vegetation as a description of ground cover. I really struggled with the common terrain categories of Desert and Marsh - are they Terrain or Vegetation. I finally decided that Desert was sparse vegetation and Marsh was terrain where the water table was at ground level. A lot of it came down to looking at the possible combinations of Terrain and Vegetation and thinking of what they would describe - such as Marsh/Sparse describing a tidal flat and Marsh/Forest as mangrove swamp.
I may have broken forest up a little too much, but I know scrub forest, much of where I grew up in northern Minnesota was relatively young second growth forest, with lots of interlaced thickets of dogwood and briars that you had to walk around. Differentiating between Woods and Forest though really gets back to my board gaming days of trying to move tanks through 'Light woods' and 'Heavy woods'. The difference stuck and it's in the generator.
Most of the work in this revision actually isn't in the code, after deciding how to describe an environment, I then had to build some sort of tool that would allow me to quickly format lots of data - an entry for each monster. That alone must have taken six to eight hours and I really haven't started inputting all the monsters yet, all I have in are Humanoids and Wild Animals.
The last property I mention - Setting - isn't being used yet, when I get to putting in Dinosaurs and mamoths I'll introduce that control.
I did, thinking of Black Vulmea over at Really Bad Eggs, add Pirates in place of waterborne Bandits and Raiders.