Web application generating interactive and highly customizable maps
Find a file
barrulus 9c090894f2 Implement hierarchical burg placement and route generation system
Major Changes:
- Enhanced burg placement system with three-tier hierarchy:
  * Primary centers (capitals + large ports) connected by main roads
  * Regional centers (plaza burgs) connected by secondary roads
  * Local settlements connected by trails to existing network

Burg Placement Improvements (burgs-and-states.js):
- Added identifyLargePorts() function to mark coastal settlements as major population centers
- Implemented placeRegionalCenters() function for strategic plaza burg placement
- Enhanced placeTowns() with hierarchical scoring based on distance to major centers
- Updated population calculations to respect settlement hierarchy
- Modified defineBurgFeatures() to guarantee plazas for regional centers

Route Generation Overhaul (routes-generator.js):
- Created hierarchical route system eliminating overlapping routes:
  * Main roads connect primary population centers (capitals + large ports)
  * Secondary roads connect plaza burgs to main network and each other
  * Trails connect isolated settlements to nearest existing routes
- Added filtered burg categorization to prevent duplicate connections
- Implemented intelligent pathfinding that integrates with existing routes
- Fixed getLength() function with fallback calculation for DOM timing issues

CSV Export Enhancement (routes-overview.js):
- Updated routes CSV export to include new "secondary" route type
- Added documentation for supported route types in export function

Technical Features:
- Distance-based population gradients radiating from major centers
- Urquhart graph algorithm for optimal route networks
- Integration with existing pathfinding cost system
- Proper route merging and connection tracking
- Robust error handling for route length calculations

Result:
- Realistic settlement hierarchy with proper population distribution
- Non-overlapping transportation network with clear purpose for each route type
- Radial patterns from major centers through regional hubs to local settlements
- Enhanced world-building with economically logical settlement placement
2025-08-12 22:44:54 +01:00
.docker Containerized version (#639) 2021-07-13 18:42:28 +03:00
.github Update FUNDING.yml 2024-11-28 12:02:43 +01:00
.vscode v1.3.03a 2020-03-27 17:52:23 +03:00
charges feat: add new emblem charges 2023-10-30 22:27:25 +04:00
components Slider-input web component (#1109) 2024-08-22 13:35:36 +02:00
config central store for heightmap configs 2022-05-29 01:03:21 +03:00
heightmaps doc: update readme 2023-02-09 13:12:37 -08:00
images Fix: rework texture data format (#1017) 2023-11-19 14:43:56 +04:00
libs style: increase dialog buttons size 2024-12-16 14:30:11 +01:00
modules Implement hierarchical burg placement and route generation system 2025-08-12 22:44:54 +01:00
styles feat: generate less water ice, v1.108.3 2025-02-15 17:45:16 +01:00
utils fix regex of 'and' adjectivization rule (#1225) 2025-08-02 13:48:10 +02:00
.gitignore more porting work 2025-08-05 13:12:07 -04:00
CODE_OF_CONDUCT.md docs: code of conduct 2022-06-01 15:08:20 -07:00
Dockerfile Containerized version (#639) 2021-07-13 18:42:28 +03:00
dropbox.html dropbox - load script dynamically 2022-02-08 00:47:17 +03:00
icons.css AI generation for notes (#1112) 2024-08-23 18:08:50 +02:00
index.css fix: grid layer to not be clickable 2025-03-09 13:29:45 +01:00
index.html Enabled larger maps with more burgs 2025-08-11 18:21:33 +01:00
ISSUE_TEMPLATE.md Update ISSUE_TEMPLATE.md 2018-06-11 21:36:07 +03:00
LICENSE Update LICENSE to include permission for derivative works 2024-06-29 12:03:52 +02:00
main.js Enabled larger maps with more burgs 2025-08-11 18:21:33 +01:00
manifest.webmanifest Correct name and shortname in web manifest (#912) 2023-01-09 01:03:23 -08:00
README.md chore: update readme 2024-03-14 11:30:21 +01:00
run_php_server.bat BAT-file for run PHP built-in server (#1094) 2024-07-11 13:46:26 +02:00
run_python_server.bat v1.5.02 - COA rendering + editor basic UI 2021-02-04 15:56:27 +03:00
run_python_server.sh Merge pull request #1212 from Nekomantikku/master 2025-06-20 00:18:57 +02:00
sw.js fix: service worker fn 2024-09-20 15:40:10 +02:00
versioning.js fix(v1.108.11): add external icons to export in base64 format 2025-07-18 02:31:10 +02:00

Fantasy Map Generator

Azgaar's Fantasy Map Generator is a free web application that helps fantasy writers, game masters, and cartographers create and edit fantasy maps.

Link: azgaar.github.io/Fantasy-Map-Generator.

Refer to the project wiki for guidance. The current progress is tracked in Trello. Some details are covered in my old blog Fantasy Maps for fun and glory.

preview

preview

preview

Join our Discord server and Reddit community to share your creations, discuss the Generator, suggest ideas and get the most recent updates.

Contact me via email if you have non-public suggestions. For bug reports please use GitHub issues or #fmg-bugs channel on Discord. If you are facing performance issues, please read the tips.

Pull requests are highly welcomed. The codebase is messy and requires re-design. I will appreciate if you start with minor changes. Check out the data model before contributing.

You can support the project on Patreon.

Inspiration: