this post was submitted on 05 Aug 2023
8 points (83.3% liked)

Hexcrawls - Map-based Exploration in Roleplaying Games

260 readers
1 users here now

Welcome to Hexcrawls - Map-based Exploration in Roleplaying Games!

Hexcrawling is a method of exploring a map in roleplaying games, often associated with the OSR style of games mostly used in the fantasy genre. It often involves procedures, random tables, and dice to determine what happens during travel from one location to another.

founded 1 year ago
MODERATORS
 

https://bearded-devil.com/2019/04/09/how-i-run-a-citycrawl-campaign/

I never understood the warning against town adventures. Except that the characters are likely to get apprehended by the constaburlary. That can be fun too!

a good video on it https://www.youtube.com/live/iKcvykeSoWk?feature=share

top 3 comments
sorted by: hot top controversial new old
[–] [email protected] 3 points 1 year ago (1 children)

That's impressive. And also, I don't think I would have the patience to do a quarter of the preps the author did. :D

In navigating the city, I want my players to feel as if nothing is being invented on the spot – the setting should feel as if it exists independently of them, and they are exploring its secrets

I found a middle ground to allow that without getting into that level of preps - although, it requires some programming skills. I use the same technique that the No Man's Sky videogame used to build a universe with a quintillion systems : geographically seeded procedural generation.

The thing with the random number generators we use on computers to replace dice roll is that they basically are prestidigitation : they make you think they give you a random result, but it never is, because randomness does not exist in computing. Instead, they are elaborate mathematical functions to which you give a seed number and who give in return a series of generated numbers which you can't predict. The interesting part in that being : if you give the same seed number, you'll get the same series of result numbers. When simulating dice, you don't want that, so you'll use something like the current date and time as a seed.

But that also mean we can use that to deterministically setup a whole universe before the campaign starts : we can use the coordinates of a hex as seed. I use that in my hexcrawl in the Traveller rpg, where each hex is a planetary system. Traveller already provides a mean to randomize what there is in a system, based on your usual tables and modifiers. I wrote code to implement this generation, and I seed my RNG with the coordinates of the hexes. And just like that, I have a universe of billons of randomly generated places that all exist from the very start of my game. I can explore them on my map, see what there is in a given region, imagine relations between them and their neighbors, it's there from the start and I know it won't change : provided the coordinates and the generation function do not change, the exact same content will always appear in the exact same place.

In most languages, the random function allows to provide a seed. It's not the case in javascript that I used to make my app, I can provide the functions I used, if anyone is interested (but really, they're just pasted from StackOverflow).

[–] [email protected] 2 points 1 year ago (1 children)

You should write a full blog on it

I wonder about incorporating AI to just generate the town and role play the NPC's

[–] [email protected] 3 points 1 year ago

Indeed, that sounds like something worth sharing. Although, writing a blog post would be a bit weird for me, as I don't have a blog and it would be a single article. I think I'm going to do what I do best : publish an open-source project based on that idea. That way, it will serve as an example about how to implement this technique, and those who can't do it themselves at least will have a generalist version that may work for them. I can't publish my Traveller app as is because it's full of copyrighted content, but I'll extract something from it that will allow users to fill their own tables for generated content.