Saturday, March 31, 2018

Help Make Hex Describe the Best Thing Ever


A little while ago, +Zak Sabbath posted this on G+:

"Here's what I want:

A program that writes an entire setting book using a variety of the existing random OSR tables online.

(Like Last Gasp and Abuafia's automated crowdsourced random generators)

It generates a random map using an existing random map program, then for each area it generates random contents using an existing random hex contents widget, for each village it generates a random village using existing random village generators, for each dungeon it generates random rooms, for each room it generates random contents, for each creature it generates a personality and stats and a history, etc etc fractally all the way down."

The last comment in the thread was +Alex Schroeder casually dropping a link to his web app Hex Describe. It fucking rules.

It generates the contents of a list of hexes by pulling from tables for each hex type using Abulafia formatting. So if your hex list was:

0101 forest

You could have a table like this:

;forest
1,A stone bridge crosses a valley stream, under which a troll lurks.
1,A pack of wolves makes its den here, which is strewn about with coins from previous victims.
2,A merchant has broken a cart wheel and offers reward either to fix the cart or otherwise transport her and her goods to the nearest town.

The numbers before each entry are weights, so the merchant entry has a 2/4 chance of being selected, while the other two only have a 1/4 chance. You can also have sub-tables, so you could alter the table in this way:

;forest
1,A stone bridge crosses a valley stream, under which a troll named [troll name] lurks.
1,[group of beasts] makes its den here, which is strewn about with coins from previous victims.
2,A [goods] merchant has broken a cart wheel and offers reward either to fix the cart or otherwise transport her and her goods to the nearest town.

;troll name
1,Harnfling
1,Firbin
1,Dogrunt
1,Wrungle

;group of beasts
1,A pack of wolves
1,A pride of lions
1,An ambush of tigers
1,A bear

;goods
1,salt
1,clothes
1,medicine
1,shoes

Things can get pretty complex just by typing out a long list of tables. And, in fact, Alex already has a damn impressive example here.

The more I play with and read about it, the more I'm convinced this is the program that can do what Zak was asking. OSR folks just need to get together and build the library to support it.

So in that spirit, I'm creating The Hex Describe Bible, a library for Alex's Hex Describe set up to be built by Gygaxian Democracy. My ambition is for it to grow into nothing less than the definitive source for random hex contents generation. I want this thing to be over 500 pages long and inspire awe in those who use it. I want people to talk about hexcrawls in terms of "before Hex Describe" and "after Hex Describe".

But for that to happen, I need you. All of you. I'm sure you have at least a few hex descriptions lying around. Add them to the Hex Describe Bible under the most appropriate hex type. It's set up to spit out hex descriptions like this:

0101: Bush.
Landmark: Several ant mounds at least 20 feet tall dot the horizon. Food, even in large quantities, tends to go missing here.
Encounter: Scrub brush hides an opening to a deep pit. At the bottom lie the skeletal remains of an unlucky traveler holding scissors.
NPC: a human fighter (lvl 2) named Nayara who can inspire another character to perform an extra non-attack, non-spellcasting action once per fight and can disarm an opponent on a successful hit if they fail a strength check. Is generous and motivated by family. Wields a longbow. Carries 10 days’ rations, a taxidermied animal, priest's robes, and priest's robes.
Item: A thorny shrub oozes sap that can be used as a powerful adhesive. Can only be removed with goblin urine.

Right now there are only a few examples up there for the bush hex type, but there are also things like character traits, a system for generating NPC fighters, clerics, thieves, and magic users, equipment, the LotFP spell list, and lots and lots of names.

Over the next week I'll be filling out more and more of the tables and highlighting some of the things this can do on my blog. But I can't do this alone. Even if you don't want to contribute, please share with people who might.

I need you. Your hexmap needs you. Let's do this.

EDIT: If everyone who read this post added just one hex description to the doc, we'd have 1600+ by now. Just sayin'. If you found this blog, chances are you've written at least ONE hex you're proud of in your whole life. Go add it right now. I've written a tutorial for exactly how to get started here. If you have a big table to format, check this out.