Map-Generation part 2

I have started looking at adapting this for HexDescribe type reasons.

For example: – https://github.com/bluetyson/Map-Generation/blob/main/src/map.py

https://chgowiz-games.blogspot.com/ is working on a epic random generator for a campaign you can read about at his blog – using HexDescribe https://campaignwiki.org/hex-describe

You can see some examples here https://docs.google.com/spreadsheets/d/1G8AZf2tBOtGYr5AEKis7_AZYpJ1_T18LFYp_mi_rikY/edit#gid=1019219400 and https://pastebin.com/raw/W9zgH3pN

Borrowing his business classifications for an example for the Map-Generation software:

The output for this program is GeoJSON, so thanks to QGIS – which is great open source software.

closeup example

Randomly perturbed Voronoi generation seems to work well for the random wanderiness of towns or cities that spring up.

The original code has churches, monasteries and Cathedrals. Pretty sure our D&D type games don’t need that sort of building type overload.

As well as GeoJSON – it has a viewer script that is basically QTing a PNG, so your usual plt.savefig() before that will get you that version of the output, saved, too. Need to make one that is labelled – maybe a geopandas .

Converting this to perl directly would take a bit of work – no higher level geospatial apis like shapely around there, so would have to redo in gdal directly :- https://metacpan.org/pod/Geo::GDAL. Probably easier to wrap, for fun.

Desert Maps

Alex has made some adjustments to his Alpine algorithm for TextMapper to get better desert terrain – e.g. Australian. Lots of generic rpg maps assume European type things – e.g. cool to cold, whereas Australia is temperature to equatorial, in general.

This one is a nice example https://campaignwiki.org/text-mapper/alpine/document?width=52&bottom=3&peaks=7&bumps=2&height=48&steepness=4&peak=10&bump=2&arid=0&climate=desert&type=hex&seed=693329917

Map Generation – Cities and Towns

https://github.com/LAVS-TM/Map-Generation

A program that can generate cities and towns, medieval Voronoi style. Along with a viewer that can produce graphcis the base output is json, which gives you vector data to use with other things. Very nice!

Sample city

Here is an example of a possible configuration for the city to be generated:

city = City(10000, 10000, has_walls=True, has_castle=True)
tools.json(city, '/generated_city/city.json')

Perlbrew

https://perlbrew.pl/

Alex Schroeder told me about this one, I generally just installed a distro and then upgraded when necessary.

Where you can manage them locally.

I changed from shared hosting to an upgrade to allow some extra perl options – which didn’t really give what I wanted, but looks like this will.

Which should make it easier to contribute to his stuff from wherever, with a dev environment online to test things.

Köppen climate classification

This is a 5 zone breakdown.

A-E, Tropical, Arid, Temperate, Continental, Polar

Or in a game sense, Jungle, Desert, Standard, Cold, Arctic

And put intermediate things in as you like

Köppen climate types
Koppen Climate Classifications – Wikipedia

Welsh Piper hex map algorithm – Python

In relation to HexDescribe and TextMapper – the random or Smale algorithm is the Welsh Piper’s. https://welshpiper.com/hex-based-campaign-design-part-1/

There’s a follow on part linked for stocking hexes.

I translated this to python – partly as a ChatGPT exercise.

https://github.com/bluetyson/Dungeon23-Mokuy/blob/main/smale.py

Where I did a few tweaks of the Primary and Secondary maps for the gnomeyland style based on the terrains I have put in Mokuy for HexDescribe.

Here’s the TextMapper map https://github.com/bluetyson/Dungeon23-Mokuy/blob/main/mokuy1.txt

and the HexDescribe tables so far – lengthy project the latter https://github.com/bluetyson/Dungeon23-Mokuy/blob/main/mokuytables.txt

I need a ship and ship crew generator, speaking of such things (and/or ChatGPT).

Mokuy – Australia hex mapping, Hex Describe and Hex Mapper

Alex Schroeder has an ‘Alpine’ hex map generation option in https://campaignwiki.org/hex-describe/ . This allows you to tweak heights for maps.

Also in TextMapper similarly. However, his native Switzerland and Australia are somewhat different in size and smoothness.

These are great and the code is also here:- https://github.com/kensanata?tab=repositories

Austrlia DTM stats
Australia DTM Histogram

Switzerland DTM stats
Switzerland DTM stats

You can see the power law distribution dropoff for Australian terrain, whereas Switzerland is much more elevated. e.g. Australia is an old, worn down continent, geologically.

%d bloggers like this: