Tuesday, November 18, 2014

Reader Query: Random Solo Wilderness Generation?

Yesterday I got a compelling piece of post-necromancy, this time on my kickoff pointcrawl post. Zack asks:
“I happen to be interested in the hex crawl sort of gaming, particularly in a sandbox fashion. I also happen to be totally blind, so hex paper and so on isn't super helpful for me. In fact, maps in general are kind of a pain in the neck, because I can't read them easily, and I always feel like I'm missing setting info of one sort or another.
So I'm wondering if anybody has ideas for combining the point crawl approach, or one which avoids maps, with randomized terrain generation? I'd love to run something solo, like Scarlet Heroes from Sine Nomine, for instance, but they all seem to presume hexes. Another way to look at it would be an experience kind of like the Elder Scrolls video games, which I can't play. It could be a lot of work doing something like that solo, but…”
My first impulse was to rustle up some online and published terrain generators, but scanning through my own links I remembered my own frustrations trying to build such systems last decade when I was primarily a solo minis wargamer. The key problem for me being that many of them are too flatly random that is they generate incoherently terrain without much rhyme or reason and are boring as hell. Here is a dull little desert next to a bland forest next to some “open.”

So where to start?

Fortunately I can think of two good starting points: the ever-useful trainwreck that is the first edition AD&D Dungeon Masters Guide and an old Avalon Hill Game, Source of the Nile. Since my time is limited (the Dunes call) I will concentrate on the first.

Appendix B: Random Wilderness Terrain (page 173) has a nice framework, a relatively easy and elegant system of charts. Promisingly these charts take into account the terrain you are just leaving (and really this will work even better with a pointcrawl or mapless system). So if you are leaving a hilly area you are way more likely to hit more hills or mountains than you are a swamp.
Click to Enlarge
D&D is chalked full of random monster encounters by terrain (hard to get past the first edition DMG again) so no need to go there but it would be handy and nice to have some places to generate random color. Fortunately there boat loads of handy online generators that can cover that in an interesting way. Take this page on Abulafia alone (especially this one and this one which you can just keep regenerating when you need interesting places).


Before shoving off this is perhaps an ideal question to extend to the collective brain trust: what random terrain generators do you know about that fit this bill (and please read the specific query)?

15 comments:

  1. I put some thoughts about the problem on my blog.

    ReplyDelete
  2. Central Casting: Dungeons had a set of four tables to generate the location of a dungeon; it wasn't tied specifically to hexes, although I describe it here as a hexcrawl technique:

    Central Casting: Dungeons review

    I think for blind GMs or those who are otherwise not using maps or hexes, any random terrain method ought to be based around routes, such as roads and rivers, or off-route directions perpendicular to the route. So, for example, you roll the elevation on the river's left bank and the elevation it transitions to farther away, plus the elevation it transitions to as you travel upstream or downstream, then you do the same for the right bank. Do something similar for biome (vegetation) and terrain type (broken, rolling, rocky, sandy.). Afterwards, roll for the distance downstream to the next change.

    Instead of a hexmap, you'd have a list of river or road sections, what's on them in order of appearance (when heading downstream, for example,) ending with what that section connects to. You'd skim down the list to get to the next section named.

    Once, I was working on a hexcrawl system that had some tables that could be useful for non-hex travel.

    Last Minute Hexcrawl tables

    The first three tables have entries arranged in rational order (cold to hot, high to low elevation, dry to wet biome.) You'd roll once each for your starting area. You'd then use just the terrain table (and optionally the landmark table) to roll for changes; it includes higher, lower, and wetter results. As you head towards higher elevation, the biome you originally rolled would move towards higher numbers on the table, unless a "wetter" result indicates you are approaching a new water source.

    ReplyDelete
  3. ...and to specifically address the point-crawl goal: as you point out in your original post, the point-crawl's points are almost always connected by routes: roads, rivers, or something similar. What you need to know is how far it is between two points, or if there are any transitional points between. In case it's not clear, the river or road sections I mentioned above would basically be the points. You'd be rolling to see what the central terrain is, and the terrain it changes to in each of four relative directions.

    ReplyDelete
  4. Thanks for the ideas so far. :) I'll admit the approach of focusing on things at a biome level hadn't occurred to me—I'm not sure if it will be too fiddly in practice, but then again I guess from a solo perspective detail is helpful.

    I don't want to overfetishize maps—I know they're not everything in region creation, but they do seem to have a lot of information it's hard to get elsewhere. THere's nothing more frustrating than a gazetteer in alphabetical order, which lists a bunch of places I can't actually parse connections between. That seems to be a theme in many world books for RPGs.

    Those pages you linked to are going to be super helpful. Thank you. :)

    Any more ideas appreciated. ;)

    ReplyDelete
  5. It looks like the method Sassone used is what my scattered thoughts were working towards. And your mentioning of routes reminded me of this post :
    http://tsojcanth.wordpress.com/2014/06/08/chthonotron-a-pictorial-example/

    which is a pointcrawl generator based on routes

    ReplyDelete
    Replies
    1. Unfortunately, that method isn't going to work for a blind user, since it depends on dice position.

      What you want for a random point crawl based on routes is to randomly roll the number of routes from the current location, then roll the distance on a given route to the next point. I'd suggest:

      Number of routes = (2d6)/2
      Distance = 1d6 days by major road or river, 2d6 minor road, 3d6 days caravan route, 4d6 days sea trade route

      That still leaves rolling for terrain type, including terrain travelled over.

      Delete
    2. Argh, with my image heavy blog post I'm batting 0 for 2. Ah, well, connections and distance is what I arrived at too. Record keeping I think might still be a problem but I guess that depends.

      Delete
  6. No worries, I'm used to folks forgetting I'm blind sometimes. ;)

    Record-keeping is a problem I don't really have a solution for. Maps have the advantage of being self-contained for the most part, and compact. Any description/list of points/whatever could probably be a bit unwieldy if I wasn't careful.

    The approach of specifying the type of connection and distance as a start seems reasonable. I guess it makes sense that most travel—unless you were unlucky—would be done over roads or whatever. Overland movement is another matter entirely.

    How much information is enough for people to start having solo adventures? I guess that's yet another question. The advantage of a setting like Tamriel is that it's nice and prewritten, or pre-coded, anyway. It's easy to feel like I could either prep too little or prep too much.

    All things to ponder :)

    ReplyDelete
    Replies
    1. For record-keeping I think your best bet might be to just number the points in the pointcrawl like the locations in a choose your own adventure book. And then exits from a point are numbered according to where they lead.

      I've been trying to make a solo catacomb crawling game for about 20 years and it's just tough to come up with something that might surprise you with an unexpected result. Good luck.

      Delete
  7. Hey Zack,
    I was wondering if I can help you by writing some pointcrawl generating software/game. I wrote both the Chthonotron mentioned in the comments and interactive fiction and MUDs in the past. They are great for procedural generation! I was wondering what kind of interaction you want to have with the text/game and how you would prefer to handle combat and other adventuring problems.

    So, yeah, I'm totally up for writing a text-only version of the Chthonotron or something similar. Feel free to answer at tsojcanth@gmail.com

    ReplyDelete
  8. in regards to converting an existing 'hex-mapped' world, the hexes are or can be easily numbered. each hex becomes a 'point' with a number. just list everything in that number like terrain, points of interest,etc. assuming one started with a 'true-column' hex map, from point 54, one can travel to points 53, 55, 43, 44, 63, and 64. because the '5' in 54 is odd, your neighbors to either side will be (X - 11), (X - 10), (X + 9), and (X + 10). in an even column (even ten's digit), your neighbors are (X -10), (X - 9), (X + 10), and (X + 11). all points have (X - 1) and (X + 1) as neighboring points.

    ReplyDelete
    Replies
    1. oops, meant to add that X is your current hex/point number.

      Delete
  9. of course, converting a large hexmap in this fashion is a daunting amount of work. i suspect this is the 'pain in the neck' to which Zack refers and probably a big reason why he wants random generation methods. solo play would be the other.

    i'm working on something that might be sufficient for his desires. here's my starting point:

    determine terrain by region. a region would be a box on the pointcrawl map or a region number for Zack.

    d6 - Region Terrain
    1 - wetlands(3), grasslands(2), forests(1)
    2 - forests(3), grasslands(2), wetlands(1)
    3 - grasslands(3), forests(2), hills(1)
    4 - hills(3), forests(2), grasslands(1)
    5 - forests(3), hills(2), mountains(1)
    6 - mountains(3), hills(2), deserts(1)

    the numbers in parenthesis indicate the overall prevalence of that type of terrain within a 'region'.

    ReplyDelete
  10. i don't think there's anyway to create something randomly 'on the fly' that is logical. there will always be an element of backtracking and adjusting for consistency. the methods i have in mind are for randomly creating the whole wilderness/play-space before beginning play. it seems everyone is avoiding this approach for some reason, so i will shut-up now...

    ReplyDelete
  11. Zack,
    Not sure exactly what you are looking for. Here's a method for randomly generating wilderness (without a map) for solo play:

    http://mmmnm.blogspot.com/2014/11/random-solo-hexless-wilderness.html

    That method generates the geography without getting overly complex. All that is needed at that point are various tables generating encounters, events, and inhabitants.

    ReplyDelete