genworldvoronoi: Graph based planetary map generator
It simulates (somewhat) global winds and attempts to calculate precipitation and temperature for more intricate simulations in the future.
It features SVG, PNG, and Wavefront OBJ output.
This is based on https://www.redblobgames.com/x/1843-planet-generation/ and a port of https://github.com/redblobgames/1843-planet-generation to Go.
I draw further inspiration from various other projects such as https://github.com/weigert/SimpleHydrology and https://github.com/mewo2/terrain
... if you haven't noticed yet, this is a placeholder for when I feel less lazy and add more information :D
Dev notes
This thing needs a use, and I think the major drawback right now is the time that it takes to generate a reasonably complex planet with enough detail to be interesting. So here are tne following important points that need to be addressed:
- Generation speed
- Use concurrency where sensible
- Introduce a cache for fitness functions
- Export / import of generated data
- Separate generation steps into
- Geology, Climate
- Biology, Species, Survivability
- Civilization, Cities, Empires
- Binary format for writing to / reading from disk
- Simulation
- Seasons, Weather, Disasters
- Biology, Species, Migrations
- Population Growth, Migrations
- Wars, Diplomacy
- Founding, Development, Abandonment, Fall of Cities, Empires, Religions
- Written History, Legends
TODO
- Use cached temperature instead of getRegTemperature every single time
- Climate
- Elevation
- Move away from linear interpolation
- Add improved noise
- Winds
- Push temperature around [DONE]
- Push dry air around, not just humid air
- Re-evaluate rainfall and moisture distribution
- Civilization
- Industry and trade
- Introduce industry
- Introduce production / harvesting of goods
- Improve trade routes
- Cities
- Better city fitness functions
- Separate world generation better from everything else
- Assign goods and resources to cities (for trade)
- Empires
- Introduce empires with capitals [DONE]
- Provide simpler means to query information on an empire
- Cultures
- Add fitness function for "natural" population density estimates
- Resources
- Improve resource distribution
- Fitness functions
- Amount / quality / discoverability?
- Add more resource types
- Species
- Allow for overlapping populations
- Allow for species migration
Here some old pictures what it does...
SVG export with rivers, capital city placement and stuff.
Leaflet server (and sad flavor text).
Poor man's relief map.
Slightly wealthier man's relief map.
Does political maps.
Simulates climate (-ish)
Simulates seasons (-ish)
Exports to Wavefront OBJ
Webglearth sample
Cesium sample