Hm no, that one I saw (and it is great I suppose, not there yet to use it), I'm more wondering about the procedural-from-scratch map-generation.
 
Unfortunately I never got a tool released from this research, but it was really fun experimenting with different methods of generating terrain and biomes. Hopefully someone will be inspired by it.
 
I've decided to put some more work into this project. I've abandoned the old code base in favor of a completely 3D approach.

Since experimenting with the Sphere Slicing, it occurred to me that a better way to approach this problem is to calculate the Delaunay and Voronoi graphs on the surface of a sphere. This would allow better tectonic plate simulation to generate continents and mountains.

After full planet generation is complete, the sphere can be projected onto a rectangular map and rendered using UO tiles.

Stage One 3D: Generate Random Points on the surface of a sphere

Zoomed In:
points_zoomed.png

Zoomed Out:
points.png

Stage Two 3D: Delaunay Triangulation of points on a sphere
Zoomed In:
triangles_zoomed.png

Zoomed Out:
triangles.png


Stage Three 3D: Parsing Delaunay Triangle Graph into Voronoi Graph
Voronoi Polygon Graph is the dual graph of the Delaunay Triangle Graph

Zoomed In:
VoronoiDelaunay_zoomed.png

Zoomed Out:
VoronoiDelaunay.png

Stage Four 3D: Voronoi Polygons Only

This is using an averaging function to make the points more regular.

Zoomed In:
Voronoi_zoomed.png


Zoomed Out:
Voronoi.png
 
Last edited:
Stage Five: Tectonic Plate Generation

Plates are generated by choosing random points and applying a round-robin flood fill algorithm.

tectonic_plates_generated.png

With Voronoi Outline:
tectonic_plates_generated_with_outline.png

tectonic_plates_generated_with_outline2.png

Experiments with plate density:
lumpy_plates.png
 
Last edited:
Most of the interesting activity occurs at plate boundaries. For this reason, I need to keep track of the polygons at plate boundaries.
In this screenshot, each tectonic plate has lighter polygons at the edges. Each red polygon represents the seed polygon for the plate.

tectonic_plates_border_polygons.png

Some of the plates are very long and stretch around where I wouldn't expect them. The dark green plate in the image above is a good example. I'm still trying to decide how (and if its necessary) to modify the flood fill algorithm so this doesn't happen.
 
This screenshot shows tectonic plate movement vectors (arrows).
tectonic_plates_movement_vectors.png

The vectors will decide what kind of plate boundaries exist (convergent, divergent, transform) and the direction in which continents will move.
[doublepost=1505969360][/doublepost]Vector direction to the nearest neighbor:
tectonic_plates_movement_neighbors.png
 
You can use photoshop to record actions. And make a map generator that way. Have a friend who created something to that effect using photoshop and map colors used in a map creator. It basically created random shapes and preserved tile transitions along the edge of the map. Because, in map creation you can't have 1x1 pixels. As the tile transition formulas couldn't transition. Also it would mess up coast lines ect... If you didn't have proper transitions. I know this probably doesn't help very much. And is vague. But, I have seen it done. He put a lot of work into automatic map generation. Believe, he plans on releasing it all one day.
 
I've seen tutorials on how to make random maps in photoshop, and they look really interesting. If I remember right they use random noise to build up shapes etc, and then do other procedures on them.

Instead of modeling the physics of the tectonic plates directly, as easier approach will be to build math functions that model the result of plate boundaries. That will allow calculation of vertex altitude based on distance from the plate boundaries.

Divergent Boundaries

Continental-continental_constructive_plate_boundary.svg.png
Author: domdomegg
License: Creative Commons Attribution 4.0 International

Oceanic-oceanic_constructive_plate_boundary.svg.png
Author: domdomegg
License: Creative Commons Attribution 4.0 International

 
Last edited:
Determine each type of plate boundary for each border polygon using directions:
tectonic_plates_border_neighbors.png
 
Last edited:
Unify boundary types by majority vote on each plate to plate border:
tectonic_plates_boundary_types_determined.png

Green indicates that a plate is converging into a bordering plate
Blue indicates that a plate is diverging from a bordering plate
Orange indicates that a plate is neither converging nor diverging, it is a transform boundary

Each interior Tectonic Plate polygon is assigned to the closest plate border polygon:
tectonic_plates_nearest_border.png
 
Last edited:
Now that boundary types have been identified, functions representing each boundary type can be applied based on distance from the boundary. Plate densities are also factored in to each altitude point.

Convergent Boundary Function
tectonic_plates_convergent_boundaries_graph.png

Convergent Boundary Results
tectonic_plates_convergent_boundaries.png

The lighter the green, the higher the altitude.
tectonic_plates_convergent_boundaries_with_mountains.png

tectonic_plates_convergent_boundaries_with_mountains_2.png
 
Last edited:
More tectonic plate experiments and progress...


Profiles can be bad if abused
PlateProfilesProgress.png

Oceans need depth too
PlateProfilesProgress_2.png


Need to work on altitude a bit
PlateProfilesProgress_3.png

PlateProfilesProgress_4.png
 
Back