Refine map generator spawn placement rules

Spawn generation generally tries to place spawns:

- In spacious areas
- Away from the center (true center or mirror lines)
- Away from a symmetry-projected spawn
- Away from previously placed spawns

This commit introduces the following adjustments:

- The spacing between sequentially placed spawns is relaxed.
- Fix spawn mines contributing too much to the space reservation.
- Factor rotations into anti-center biasing calculation.
- Preserve spacing information in center space fallback decisions.
- Use a linear (instead of binary) falloff for anti-center biasing.
- Enforce that spawns have a minimum buildable area around them.
- Enforce that symmetry-projected spawns have as much separation as
  sequentially placed spawns would.
- Allow spawns on or near roads.
This commit is contained in:
Ashley Newson
2025-01-27 21:46:19 +00:00
committed by Gustas Kažukauskas
parent 440987c0a4
commit 1fda679b9f
4 changed files with 39 additions and 42 deletions

View File

@@ -34,8 +34,9 @@
ResourceSpawnReservation: 8
SpawnRegionSize: 12
SpawnBuildSize: 8
MinimumSpawnRadius: 5
SpawnResourceSpawns: 3
SpawnReservation: 20
SpawnReservation: 16
SpawnResourceBias: 1050
ResourcesPerPlayer: 50000
OreUniformity: 500
@@ -56,6 +57,7 @@
PartiallyPlayableTerrain: River,Tree,Water
UnplayableTerrain: Rock
DominantTerrain: River,Rock,Tree,Water
ZoneableTerrain: Clear,Road
PartiallyPlayableCategories: Beach,Road
ClearSegmentTypes: Clear
BeachSegmentTypes: Beach

View File

@@ -34,8 +34,9 @@
ResourceSpawnReservation: 8
SpawnRegionSize: 12
SpawnBuildSize: 8
MinimumSpawnRadius: 5
SpawnResourceSpawns: 3
SpawnReservation: 20
SpawnReservation: 16
SpawnResourceBias: 1150
ResourcesPerPlayer: 50000
OreUniformity: 250
@@ -55,6 +56,7 @@
PartiallyPlayableTerrain: Tree
UnplayableTerrain: River,Rock
DominantTerrain: River,Rock,Tree,Water
ZoneableTerrain: Clear,Road
PartiallyPlayableCategories: Beach,Road
ClearSegmentTypes: Clear
BeachSegmentTypes: Beach
@@ -159,6 +161,7 @@
Settings:
Water: 800
Forests: 0
MinimumSpawnRadius: 4
Choice@LargeIslands:
Label: label-ra-map-generator-choice-terrain-type-large-islands
Settings:
@@ -181,6 +184,7 @@
TerrainFeatureSize: 5120
Forests: 0
SpawnBuildSize: 6
MinimumSpawnRadius: 4
Option@Rotations:
Label: label-ra-map-generator-option-rotations
SimpleChoice: Rotations