If I'm going to automate, I should go whole-hog for a level of complexity which would be utterly unmanageable by a human, and design the system for that from the beginning, rather than just doing what a human DM would do given an abundance of free time and a dearth of creativity. Does a submarine swim?
- Stock lairs in hexes according to terrain type. Dwelling-type may be chosen from the random dungeon types table, if reasonable for monsters of this type to live in a hole in the ground.
- Actually, looking at the end of this where I'm considering migration, the more-correct solution is to start with an empty wilderness and run like 10 years of immigration and migration beforehand.
- For each lair, construct a "hunting range" of other hexes into which its monsters frequently wander. Hunting range primarily based on monster speed, movement type, diet, and hex types. Range concretizes some of Trilemma's nonmechanical difficulty elements.
- Sentient monsters taken prisoner can serve as wilderness guides throughout the range of their lair
- Monsters unlikely to pursue parties beyond the edge of their range
- Construct per-hex random encounter tables, based on the lairs whose hunting ranges contain that hex.
- Do not attempt to manually query these tables. The user interface for this is "Machine, give me a random encounter for hex 0423" -> "Goblin warband from the village in hex 0625, with n champions, m goblins on wargs, 15kcp and a sword +1 interacting with 4 wild boars from lair in hex 0321".
- Actually though, I should drop lame-ass animal lairs and assume a reasonable, dense distribution of mundane wildlife (eg herd animals, normal-sized hawks, rats, ...). If it isn't going to ever kill a wilderness-level PC, I don't need to track it as a monster.
- Favor monsters from lairs that the players have met before. This both encourages narrative recurrence / campaign capital development, and is generally reasonable in terms of shared movement habits - if you reuse the same game trails and they reuse the same game trails, you're likely to run into each other again.
- Optionally, vary encounter tables with time of day, weather, season. Bears hibernate in the winter, big cats hunt at dusk and dawn, giant bats are nocturnal, humanoids don't like hunting in the rain, ...
- Cut the day into 4-hour blocks - dawn (4-8), morning (8-12), afternoon (12-4), dusk (4-8), first watch (8-midnight), second watch (midnight-4)
- Likewise, vary probability of random encounter by individual hex, day/night, weather, season, ... instead of just terrain type.
- Manual update with results of encounter -> "goblin warband from village in hex 0625 destroyed"
- Monthly, check for monster migration. Monsters migrate based on monster-density in their hunting range, terrain types, season. Monsters can also migrate in off the edges of the map (bounded area being simulated), and migrate off the edge of the map (though maybe known lairs do not migrate off-map). Monsters less likely to migrate if they have a village, dungeon-lair, or lots of treasure. Maybe also kill off some lairs during monthly rollover.
- Changing ranges might be a better approach, with lair migration only if no workable range is achievable that includes that lair hex. On month rollover, greedy search from each lair for a set of hexes which generate an amount of population support sufficient for the lair and which minimize exposure to predation. If no satisfying solution found, the lair migrates. Perform updates in ascending order of speed; fast predators can reactively update their ranges in response to slow prey migration.
- Or each lair has a fixed amount of time/effort/utilization available to it, and this can be assigned to hexes to derive population support from them or to travel through them, with environmental factors and presence of predators making this less efficient. Utilization of each hex also determines on a per-hex basis the weighting of the lair in that hex's random encounter table - you're more likely to have an encounter with wyverns in their hunting grounds than in the hexes under their flight path between hunting grounds and lair. High utilization also means greater familiarity with the hex among captured sentients.
The obvious question is "would this be fun to play in?" And that I do not know.