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 |
||
|---|---|---|
| .docker | ||
| .github | ||
| .vscode | ||
| charges | ||
| components | ||
| config | ||
| heightmaps | ||
| images | ||
| libs | ||
| modules | ||
| styles | ||
| utils | ||
| .gitignore | ||
| CODE_OF_CONDUCT.md | ||
| Dockerfile | ||
| dropbox.html | ||
| icons.css | ||
| index.css | ||
| index.html | ||
| ISSUE_TEMPLATE.md | ||
| LICENSE | ||
| main.js | ||
| manifest.webmanifest | ||
| README.md | ||
| run_php_server.bat | ||
| run_python_server.bat | ||
| run_python_server.sh | ||
| sw.js | ||
| versioning.js | ||
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.
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:
-
Martin O'Leary's Generating fantasy maps
-
Amit Patel's Polygonal Map Generation for Games
-
Scott Turner's Here Dragons Abound