warfactoryracine/gameData/WorldGeneration/Regular_world.json
StillHammer b93b269e6d Implement complete world-generation-realist system with volcanic physics and region fusion
- Create volcanic system: Volcano.h, VolcanoFactory.h, VolcanoImpact.h with realistic lifecycle modeling
- Add PlanetaryDifferentiationFunction.h for gravitational material separation (regions → core)
- Implement CoolingPhaseFunction.h with dual influences (core + surface temperature)
- Create UniversalRegionFusionFunction.h as template with duck typing for type-safe fusion
- Add ResourceRegion.h, TectonicRegion.h, ClimateRegion.h with unified fusion interface
- Update Regular_world.json with Phase 0 initialization and volcanic/cooling configurations
- Add melting_point_celsius to all resources for volcanic composition filtering
- Implement ResourceRegistry and RandomGenerator singletons for performance
- Scale system for realistic quantities: uint64_t gameplay, uint128_t planetary core

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-30 14:38:46 +08:00

919 lines
36 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"geological_simulation": {
"description": "Complete planetary formation simulation over 4.65 billion years",
"total_duration_years": 4650000000,
"phases": [
// ===== PHASE 0: WORLD INITIALIZATION (1 cycle × 100M years = 0.1 Ga) =====
{
"name": "world_initialization",
"description": "Initialize world state with starting conditions",
"duration_cycles": 1,
"years_per_cycle": 100000000,
"steps": [
{
"name": "initialize_world_terrain",
"process_type": "initialize_world_terrain",
"parameters": {
"surface_temperature_celsius": -100,
"surface_elevation_meters": -30000,
"world_size": {"width": 1000, "height": 1000}
}
},
{
"name": "initialize_planetary_core",
"process_type": "initialize_planetary_core",
"parameters": {
"core_temperature_celsius": -100,
"max_core_capacity": 1940000000000000000000,
"base_composition": {
"iron_ore": 155200000000000000000,
"stone": 38800000000000000000
}
}
}
]
},
// ===== PHASE 1: PLANETARY ACCRETION (30 cycles × 100M years = 3.0 Ga) =====
{
"name": "planetary_accretion",
"description": "Initial planetary formation through meteorite bombardment",
"duration_cycles": 30,
"years_per_cycle": 100000000,
"steps": [
{
"name": "meteorite_impact_generation",
"process_type": "generate_meteorite_impacts",
"parameters": {
"impacts_per_wave": {"min": 100, "max": 500},
"meteorite_source": "meteorites.json",
"size_bias": "larger",
"type_weights": {
"chondrite_ordinary": 60,
"carbonaceous_chondrite": 15,
"stony_iron": 12,
"iron_meteorite": 8,
"ice_comet_fragment": 3,
"platinum_rich_rare": 2,
"bubble_meteorite": 1,
"magnetic_anomaly": 0.8,
"crystal_meteorite": 0.5,
"glass_meteorite": 0.3,
"diamond_meteorite": 0.2,
"radioactive_anomaly": 0.1
}
}
},
{
"name": "impact_effects_application",
"process_type": "apply_impact_effects",
"parameters": {
"kinetic_energy_to_heat_ratio": 2000,
"crater_formation_factor": 1.0,
"surface_metal_deposit_ratio": 0.3
}
},
{
"name": "planetary_differentiation",
"process_type": "heavy_metal_sinking",
"parameters": {
"sinking_rate_per_cycle": 0.7,
"heavy_metal_threshold_density": 5.0
}
},
{
"name": "volcanic_redistribution",
"process_type": "core_driven_volcanism",
"parameters": {
"core_pressure_threshold": 0.8,
"volcanic_overflow_rate": 0.2,
"volcanic_generation": {
"base_material_per_volcano": 1000000000000,
"main_pick_count": 3,
"secondary_pick_count": 5,
"default_volcano_type": "stratovolcano"
}
}
},
{
"name": "cooling_phase",
"process_type": "gradual_cooling",
"parameters": {
"surface_cooling_rate_per_cycle": 50,
"energy_to_core_ratio": 0.3,
"energy_to_space_ratio": 0.7,
"minimum_surface_temperature": -273,
"minimum_core_temperature": 1000,
"optimal_cooling_core_temperature": 2000,
"reference_surface_temperature": 1000
}
},
{
"name": "universal_region_fusion",
"process_type": "manage_all_region_fusion",
"parameters": {
"enabled": true,
"radius_calculation": "natural_logarithm",
"base_radius": 1.5,
"mass_reference": 5.0,
"fusion_threshold_percentage": 0.3,
"use_largest_radius_for_threshold": true,
"weighted_position_update": true,
"mass_combination": "additive",
"applies_to_all_region_types": true
}
}
]
},
// ===== PHASE 2: TECTONIC FORMATION (25 cycles × 100M years = 2.5 Ga) =====
{
"name": "tectonic_formation",
"description": "Formation of tectonic plates and crustal thickening",
"duration_cycles": 25,
"years_per_cycle": 100000000,
"steps": [
{
"name": "reduced_meteorite_bombardment",
"process_type": "generate_meteorite_impacts",
"parameters": {
"impacts_per_wave": {"min": 10, "max": 50},
"meteorite_source": "meteorites.json",
"impact_probability_per_cycle": 0.3,
"size_bias": "smaller",
"type_weights": {
"chondrite_ordinary": 35,
"carbonaceous_chondrite": 20,
"ice_comet_fragment": 15,
"stony_iron": 8,
"iron_meteorite": 5,
"crystal_meteorite": 4,
"magnetic_anomaly": 4,
"bubble_meteorite": 3,
"glass_meteorite": 2,
"platinum_rich_rare": 2,
"diamond_meteorite": 1.5,
"radioactive_anomaly": 0.5
}
}
},
{
"name": "initial_tectonic_region_creation",
"process_type": "create_tectonic_regions",
"parameters": {
"target_region_count": {"min": 15, "max": 25},
"region_types": ["oceanic", "continental", "volcanic"],
"initial_type_distribution": {
"oceanic": 0.6,
"continental": 0.35,
"volcanic": 0.05
},
"initial_radius_range": {"min": 50, "max": 200},
"random_placement": true
}
},
{
"name": "tectonic_physics_simulation",
"process_type": "tectonic_physics_engine",
"parameters": {
"repulsion_constant": 0.8,
"velocity_damping": 0.95,
"max_velocity": 5.0,
"collision_detection": true,
"force_calculation": "overlap_squared"
}
},
{
"name": "region_evolution",
"process_type": "tectonic_region_evolution",
"parameters": {
"split_probability_per_cycle": 0.01,
"growth_rate_range": {"min": -0.5, "max": 1.0},
"stability_factor": 0.8,
"minimum_region_radius": 20,
"maximum_region_radius": 500
}
},
{
"name": "collision_effects",
"process_type": "tectonic_collision_processing",
"parameters": {
"mountain_formation_threshold": 1.0,
"mountain_height_multiplier": 2000,
"rift_valley_depth": 500,
"volcanic_zone_creation": true,
"volcanic_zone_lifetime_cycles": 10
}
},
{
"name": "universal_region_fusion",
"process_type": "manage_all_region_fusion",
"parameters": {
"enabled": true,
"radius_calculation": "natural_logarithm",
"base_radius": 1.8,
"mass_reference": 8.0,
"fusion_threshold_percentage": 0.25,
"use_largest_radius_for_threshold": true,
"weighted_position_update": true,
"mass_combination": "additive",
"applies_to_all_region_types": true
}
}
]
},
// ===== PHASE 3: GEOLOGICAL PREPARATION (25 cycles × 20M years = 0.5 Ga) =====
{
"name": "geological_preparation",
"description": "Sea level rise and geological basin formation (preparation for future hydrology)",
"duration_cycles": 25,
"years_per_cycle": 20000000,
"steps": [
{
"name": "tectonic_movement_slowdown",
"process_type": "tectonic_physics_engine",
"parameters": {
"velocity_reduction_factor": 0.8,
"repulsion_constant": 0.64,
"velocity_damping": 0.95,
"max_velocity": 4.0,
"collision_detection": true,
"force_calculation": "overlap_squared"
}
},
{
"name": "residual_meteorite_impacts",
"process_type": "generate_meteorite_impacts",
"parameters": {
"impacts_per_wave": {"min": 1, "max": 5},
"meteorite_source": "meteorites.json",
"impact_probability_per_cycle": 0.1,
"size_bias": "smaller",
"type_weights": {
"chondrite_ordinary": 20,
"carbonaceous_chondrite": 15,
"ice_comet_fragment": 25,
"crystal_meteorite": 10,
"magnetic_anomaly": 10,
"glass_meteorite": 8,
"bubble_meteorite": 7,
"diamond_meteorite": 3,
"platinum_rich_rare": 2
}
}
},
{
"name": "residual_volcanism",
"process_type": "core_driven_volcanism",
"parameters": {
"volcanic_activity_reduction": 0.1,
"core_overflow_rate": 0.05,
"eruption_probability_per_cycle": 0.2,
"eruption_intensity_factor": 0.3,
"core_pressure_threshold": 0.4
}
},
{
"name": "sea_level_elevation",
"process_type": "elevate_sea_level",
"parameters": {
"initial_sea_level_meters": -5000,
"target_sea_level_meters": 0,
"elevation_rate_per_cycle": 200,
"ice_volume_effect": true,
"thermal_expansion_effect": true
}
},
{
"name": "tectonic_erosion",
"process_type": "apply_tectonic_erosion",
"parameters": {
"erosion_rate_factor": 1.0,
"elevation_erosion_threshold": 1000,
"mass_to_core_transfer": true,
"mountain_erosion_rate": 5.0,
"weathering_rate": 0.1
}
},
{
"name": "geological_basin_formation",
"process_type": "form_geological_basins",
"parameters": {
"basin_formation_probability": 0.05,
"valley_carving_intensity": 2.0,
"depression_depth_factor": 1.5,
"future_drainage_preparation": true
}
},
{
"name": "basic_climate_stabilization",
"process_type": "stabilize_basic_climate",
"parameters": {
"temperature_stabilization_rate": 0.1,
"co2_equilibrium_target": 350,
"volcanic_co2_reduction": 0.05,
"weathering_co2_absorption": 0.02
}
},
{
"name": "coastal_zone_preparation",
"process_type": "prepare_coastal_zones",
"parameters": {
"shallow_water_threshold": 50,
"deep_water_threshold": 200,
"coastal_shelf_formation": true,
"sediment_accumulation_zones": true
}
},
{
"name": "universal_region_fusion",
"process_type": "manage_all_region_fusion",
"parameters": {
"enabled": true,
"radius_calculation": "natural_logarithm",
"base_radius": 1.9,
"mass_reference": 9.0,
"fusion_threshold_percentage": 0.22,
"use_largest_radius_for_threshold": true,
"weighted_position_update": true,
"mass_combination": "additive",
"applies_to_all_region_types": true
}
}
]
},
// ===== PHASE 4: CARBONIFEROUS PERIOD (35 cycles × 10M years = 0.35 Ga) =====
{
"name": "carboniferous_period",
"description": "Dynamic forest evolution and coal formation through geological cycles",
"duration_cycles": 35,
"years_per_cycle": 10000000,
"steps": [
{
"name": "tectonic_movement_continued",
"process_type": "tectonic_physics_engine",
"parameters": {
"velocity_reduction_factor": 0.6,
"repulsion_constant": 0.48,
"velocity_damping": 0.96,
"max_velocity": 3.0,
"collision_detection": true,
"force_calculation": "overlap_squared",
"carbon_region_attachment_update": true
}
},
{
"name": "dynamic_forest_seeding",
"process_type": "seed_new_forests",
"parameters": {
"base_forest_seed_rate": 0.001,
"temperature_optimal_range": {"min": 15.0, "max": 35.0},
"temperature_bonus": 2.0,
"humidity_threshold": 0.4,
"humidity_bonus": 1.5,
"elevation_max": 2000.0,
"elevation_bonus": 1.2
}
},
{
"name": "forest_expansion",
"process_type": "expand_existing_forests",
"parameters": {
"forest_expansion_rate": 0.05,
"neighbor_viability_check": true,
"expansion_distance": 1,
"density_growth_factor": 1.1
}
},
{
"name": "carbon_region_formation",
"process_type": "create_carbon_regions",
"parameters": {
"minimum_forest_density": 0.3,
"carbon_mass_base": 100.0,
"region_radius_factor": 8.0,
"tectonic_attachment_strength": 0.9,
"carbon_type_initial": "COAL"
}
},
{
"name": "carbon_region_movement",
"process_type": "update_carbon_regions",
"parameters": {
"attachment_strength": 0.9,
"merge_distance_factor": 0.8
}
},
{
"name": "coal_to_oil_conversion",
"process_type": "convert_carbon_deposits",
"parameters": {
"conversion_rate_per_cycle": 0.01,
"underwater_cycles_required": 3,
"minimum_conversion_threshold": 1.0,
"underwater_depth_minimum": 50.0,
"surface_based_conversion": true,
"create_separate_oil_regions": true,
"oil_position_calculation": "underwater_center_of_mass",
"natural_gas_generation": false
}
},
{
"name": "universal_region_fusion",
"process_type": "manage_all_region_fusion",
"parameters": {
"enabled": true,
"radius_calculation": "natural_logarithm",
"base_radius": 2.0,
"mass_reference": 10.0,
"fusion_threshold_percentage": 0.2,
"use_largest_radius_for_threshold": true,
"weighted_position_update": true,
"mass_combination": "additive",
"applies_to_all_region_types": true
}
},
{
"name": "geological_forest_destruction",
"process_type": "destroy_forests_by_events",
"parameters": {
"volcanic_destruction_radius": 10.0,
"flood_destruction_threshold": 100,
"erosion_destruction_threshold": 5.0,
"temperature_destruction_min": -10.0,
"temperature_destruction_max": 50.0
}
}
]
},
// ===== PHASE 5: PRE-FAUNAL STABILIZATION (15 cycles × 10M years = 0.15 Ga) =====
{
"name": "pre_faunal_stabilization",
"description": "Final geological maturation and climate stabilization",
"duration_cycles": 15,
"years_per_cycle": 10000000,
"steps": [
{
"name": "tectonic_movement_final_slowdown",
"process_type": "tectonic_physics_engine",
"parameters": {
"velocity_reduction_factor": 0.48,
"repulsion_constant": 0.38,
"velocity_damping": 0.97,
"max_velocity": 2.4,
"collision_detection": true,
"force_calculation": "overlap_squared"
}
},
{
"name": "reduced_carbon_formation",
"process_type": "create_carbon_regions",
"parameters": {
"no_new_forests": true,
"existing_forest_to_carbon_only": true,
"carbon_mass_base": 50.0,
"region_radius_factor": 8.0,
"tectonic_attachment_strength": 0.9,
"carbon_type_initial": "COAL"
}
},
{
"name": "hydrocarbon_maturation_continued",
"process_type": "convert_carbon_deposits",
"parameters": {
"conversion_rate_per_cycle": 0.01
}
},
{
"name": "universal_region_fusion",
"process_type": "manage_all_region_fusion",
"parameters": {
"enabled": true,
"radius_calculation": "natural_logarithm",
"base_radius": 2.2,
"mass_reference": 15.0,
"fusion_threshold_percentage": 0.2,
"use_largest_radius_for_threshold": true,
"weighted_position_update": true,
"mass_combination": "additive",
"applies_to_all_region_types": true
}
},
{
"name": "petroleum_migration_to_traps",
"process_type": "migrate_petroleum_to_geological_traps",
"parameters": {
"trap_identification": true,
"anticline_formation_factor": 1.0,
"fault_trap_creation": true,
"salt_dome_probability": 0.05,
"migration_efficiency": 0.3,
"trap_capacity_factor": 50.0
}
},
{
"name": "final_erosion_phase",
"process_type": "apply_final_erosion",
"parameters": {
"erosion_rate_reduction": 0.5,
"coal_seam_exposure": true,
"river_valley_carving": true,
"coastal_feature_formation": true,
"erosion_depth_threshold": 50.0
}
},
{
"name": "soil_development",
"process_type": "develop_soil_layers",
"parameters": {
"soil_types": ["clay", "sand", "loam", "peat", "rocky", "alluvial"],
"soil_depth_factor": 0.1,
"climate_soil_correlation": true,
"river_alluvial_bonus": true,
"elevation_soil_effects": true
}
},
{
"name": "final_climate_stabilization",
"process_type": "stabilize_final_climate",
"parameters": {
"volcanic_activity_reduction": 0.8,
"climate_stability_increase": 0.1,
"climate_zone_establishment": true,
"temperature_variance_reduction": 0.9
}
}
]
},
// ===== PHASE 6A: LANDMASS ANALYSIS & ITCZ PREPARATION (1 cycle × 1M years) =====
{
"name": "landmass_analysis_and_itcz_preparation",
"description": "Analyze continental masses from existing TectonicRegions and create Inter-Tropical Convergence Zones",
"duration_cycles": 1,
"years_per_cycle": 1000000,
"steps": [
{
"name": "continental_mass_analysis",
"process_type": "analyze_continental_masses",
"parameters": {
"_comment": "Uses existing TectonicRegions to identify continental masses for ITCZ placement",
"continental_grouping": {
"proximity_threshold": 100,
"minimum_region_count": 2,
"mass_calculation_method": "area_weighted",
"continental_type_filter": ["continental", "volcanic"]
},
"landmass_requirements": {
"minimum_total_area": 5000,
"minimum_individual_region_area": 1000,
"connectivity_analysis": true
},
"equatorial_filtering": {
"latitude_band": [0.40, 0.60],
"strict_equatorial_requirement": false,
"latitude_scoring_weight": 0.7
}
}
},
{
"name": "ocean_basin_detection",
"process_type": "detect_ocean_basins",
"parameters": {
"_comment": "Inverse analysis to identify ocean masses from continental positions",
"ocean_detection_method": "inverse_continental_analysis",
"minimum_ocean_size": 5000,
"coastal_connectivity_check": true,
"ocean_temperature_estimation": {
"latitude_based": true,
"equator_temp": 28.0,
"pole_temp": 2.0,
"thermal_gradient": "cosine_distribution"
},
"evaporation_potential_calculation": {
"temperature_factor": true,
"surface_area_factor": true,
"wind_exposure_factor": true
}
}
},
{
"name": "itcz_zone_creation",
"process_type": "create_itcz_convergence_zones",
"parameters": {
"_comment": "Create ITCZ zones on qualifying equatorial landmasses",
"itcz_requirements": {
"latitude_band": [0.45, 0.55],
"min_landmass_size": 10000,
"max_ocean_distance": 800,
"continental_heating_threshold": 5000
},
"itcz_zone_properties": {
"center_calculation": "continental_center_of_mass",
"gravitational_range_formula": "sqrt(landmass_area) * 50",
"mass_calculation": "landmass_total_area",
"amplification_factor": 3.0,
"intensity_falloff": "inverse_square_law"
},
"multiple_itcz_handling": {
"allow_multiple_zones": true,
"minimum_separation_distance": 500,
"interaction_between_zones": false
}
}
},
{
"name": "climate_infrastructure_preparation",
"process_type": "prepare_climate_simulation_infrastructure",
"parameters": {
"_comment": "Clean slate preparation for WindRegion-based simulation",
"data_cleanup": {
"clear_legacy_wind_data": true,
"clear_legacy_humidity_data": true,
"preserve_temperature_gradients": true,
"preserve_elevation_data": true
},
"token_system_initialization": {
"initialize_token_counters": true,
"token_types": ["wind", "rain", "highWind", "flood", "hurricane"],
"reset_all_tokens": true
},
"performance_optimization": {
"pre_allocate_wind_region_pool": true,
"max_concurrent_wind_regions": 200,
"spatial_indexing_setup": true
}
}
}
]
},
// ===== PHASE 6B: CLIMATE SIMULATION & BIOME GENERATION (300 cycles × 100K years = 30M years) =====
{
"name": "climate_simulation_and_biome_generation",
"description": "Advanced climate simulation using mobile WindRegions and ITCZ zones for realistic weather patterns",
"duration_cycles": 300,
"years_per_cycle": 100000,
"steps": [
{
"name": "wind_region_spawning_system",
"process_type": "spawn_mobile_wind_regions",
"parameters": {
"_comment": "Mobile WindRegions spawn from ocean masses with biased distribution",
"spawn_system": {
"spawn_locations": "ocean_masses_only",
"spawn_frequency_formula": "water_mass_size / 1000",
"spawn_distribution": "random_within_water_region_biased_toward_center",
"max_concurrent_regions": 200,
"initial_strength_formula": "water_temperature * evaporation_factor"
},
"wind_region_properties": {
"initial_wind_strength": 1.0,
"initial_wetness": 0.0,
"wind_tokens": 100,
"rain_tokens": 0,
"decay_per_move": 0.02,
"decay_per_tile": 0.01,
"minimum_survival_threshold": 0.1
},
"ocean_moisture_gain": {
"ocean_moisture_rate": 0.1,
"temperature_factor": true,
"evaporation_efficiency": 1.0
}
}
},
{
"name": "planetary_circulation_and_movement",
"process_type": "apply_planetary_circulation",
"parameters": {
"_comment": "Planetary rotation bands based on real atmospheric data",
"planetary_circulation_bands": {
"polar_jet_north": {
"latitude_range": [0.10, 0.25],
"direction": "west_to_east",
"strength": 1.8
},
"calm_transition_1": {
"latitude_range": [0.25, 0.40],
"movement": "chaos_plus_procedural"
},
"equatorial_trades": {
"latitude_range": [0.40, 0.60],
"direction": "east_to_west",
"strength": 1.5
},
"calm_transition_2": {
"latitude_range": [0.60, 0.75],
"movement": "chaos_plus_procedural"
},
"polar_jet_south": {
"latitude_range": [0.75, 0.95],
"direction": "west_to_east",
"strength": 1.8
}
},
"movement_calculation": {
"planetary_circulation_weight": 0.6,
"equator_to_pole_bias_weight": 0.2,
"terrain_deflection_weight": 0.1,
"random_variation_weight": 0.1
},
"movement_physics": {
"velocity_damping": 0.95,
"terrain_interaction": true,
"boundary_wrapping": "spherical_world"
}
}
},
{
"name": "wind_region_evolution_and_interactions",
"process_type": "evolve_wind_regions",
"parameters": {
"_comment": "WindRegion interactions including repulsion system and ITCZ effects",
"repulsion_system": {
"enabled": true,
"repulsion_calculation": "spatial_competition_proxy",
"acceleration_factor": 1.0,
"maximum_interaction_distance": 50.0,
"_design_note": "Prevents region stacking while creating realistic dispersion patterns",
"_alternative_algorithms": {
"density_based_drift": false,
"no_interaction": false,
"collision_division": false
}
},
"itcz_gravitational_effects": {
"enabled": true,
"attraction_formula": "itcz.mass / (distance * distance)",
"gravitational_metaphor": "influence_strength_not_literal_physics",
"amplification_calculation": {
"proximity_factor": "(itcz.range - distance) / itcz.range",
"max_amplification": 3.0,
"wind_strength_multiplier": true,
"wetness_multiplier": true
}
},
"regional_evolution": {
"wind_strength_decay": true,
"moisture_accumulation": true,
"death_threshold": 0.1,
"lifecycle_management": true
}
}
},
{
"name": "token_distribution_and_climate_zones",
"process_type": "distribute_climate_tokens",
"parameters": {
"_comment": "Token-based climate zone classification system",
"basic_token_distribution": {
"wind_token_factor": 10,
"rain_token_factor": 10,
"tokens_per_tile_visit": true,
"accumulation_system": true
},
"climate_zone_thresholds": {
"high_wind_threshold": 2.0,
"flood_threshold": 1.5,
"hurricane_wind_threshold": 2.5,
"hurricane_rain_threshold": 2.0
},
"special_climate_tokens": {
"high_wind_tokens": {
"description": "Hostile to forests",
"biome_effect": "prevents_forest_growth",
"token_value": 1
},
"flood_tokens": {
"description": "Forces wetlands/marshes",
"biome_effect": "mandatory_wetlands",
"token_value": 1
},
"hurricane_tokens": {
"description": "Specialized hurricane biome",
"biome_effect": "storm_resistant_vegetation",
"token_value": 1
}
},
"token_persistence": {
"accumulation_method": "additive",
"decay_rate": 0.0,
"permanent_climate_record": true
}
}
},
{
"name": "biome_classification_from_tokens",
"process_type": "classify_biomes_from_climate_tokens",
"parameters": {
"_comment": "Load biome system from external definitions - all rules and modifiers defined in biome files",
"biome_system_source": "gameData/Biomes/biome_index.json",
"load_all_biome_definitions": true,
"use_external_classification_rules": true,
"use_external_resource_modifiers": true,
"fallback_biome": "scrubland"
}
},
{
"name": "temporal_token_dissipation",
"process_type": "apply_token_dissipation",
"parameters": {
"_comment": "Random token dissipation - high for normal tokens (variation), low for catastrophe tokens (preserve special zones)",
"rain_tokens": {
"dissipation_range": [5, 25],
"dissipation_frequency": 0.12
},
"wind_tokens": {
"dissipation_range": [3, 15],
"dissipation_frequency": 0.10
},
"highWind_tokens": {
"dissipation_range": [2, 8],
"dissipation_frequency": 0.08
},
"flood_tokens": {
"dissipation_range": [1, 2],
"dissipation_frequency": 0.02
},
"hurricane_tokens": {
"dissipation_range": [1, 2],
"dissipation_frequency": 0.015
}
}
}
]
},
// ===== PHASE 7: BUDGET ASSIGNMENT =====
{
"name": "budget_assignment",
"description": "Random budget score distribution for economic gameplay",
"duration_cycles": 1,
"years_per_cycle": 1000000,
"steps": [
{
"name": "assign_budget_scores",
"process_type": "random_budget_assignment",
"parameters": {
"distribution": "normal",
"mean": 0.0,
"std_dev": 3.0,
"range": [-10, 10]
}
}
]
},
// ===== PHASE 7: BUDGET & FEATURES =====
{
"name": "budget_and_features",
"description": "Random budget assignment and biome-appropriate natural features placement",
"duration_cycles": 1,
"years_per_cycle": 1000000,
"steps": [
{
"name": "assign_budget_scores",
"process_type": "random_budget_assignment",
"parameters": {
"distribution": "normal",
"mean": 0.0,
"std_dev": 3.0,
"range": [-10, 10]
}
},
{
"name": "place_natural_features",
"process_type": "biome_based_feature_placement",
"parameters": {
"chance": 0.05,
"feature_sources": [
"gameData/MapFeatures/geological_formations.json",
"gameData/MapFeatures/natural_landmarks.json",
"gameData/MapFeatures/water_features.json",
"gameData/MapFeatures/volcanic_features.json",
"gameData/MapFeatures/underground_features.json",
"gameData/MapFeatures/forest_features.json",
"gameData/MapFeatures/coastal_features.json"
],
"biome_compatibility": {
"tropical_rainforest": ["giant_tree", "ancient_grove", "bamboo_grove", "fruit_orchard", "carboniferous_forest", "underground_river"],
"hot_desert": ["canyon", "cliff", "sinkhole", "oasis", "volcano", "lava_field", "obsidian_field"],
"temperate_forest": ["forest_clearing", "ancient_grove", "medicinal_grove", "mushroom_grove", "carboniferous_forest", "underground_lake"],
"grassland": ["plateau", "natural_bridge", "sinkhole", "lake", "spring"],
"tundra": ["geyser", "sinkhole", "cliff", "lake", "crater", "fumarole", "deep_cavern"],
"alpine": ["canyon", "cliff", "gorge", "volcano", "caldera", "crystal_cavern", "volcanic_vent"],
"cold_desert": ["canyon", "cliff", "sinkhole", "hoodoo", "crater", "obsidian_field"],
"hills": ["cave", "spring", "plateau", "gorge", "cave_network", "bat_cave"],
"rocky_plateau": ["canyon", "cliff", "natural_bridge", "mesa", "rock_spire", "monolith"],
"hurricane_zone": ["cave", "gorge", "marsh", "central_hill_swamp", "bat_cave"],
"wetlands": ["central_hill_swamp", "islands_swamp", "hilly_swampy", "underground_lake", "delta"],
"storm_prairie": ["plateau", "sinkhole", "natural_bridge", "hoodoo", "monolith"],
"badlands": ["canyon", "cliff", "gorge", "mesa", "sinkhole", "lava_field"],
"coastal_plain": ["delta", "pond", "marsh", "estuary", "natural_harbor"],
"cliffs": ["sea_cave", "cliff", "natural_arch", "blowhole", "sea_stack"],
"sandy_coast": ["beach_dunes", "delta", "natural_harbor", "tidal_pool", "estuary"],
"rocky_shore": ["sea_cave", "tidal_pool", "sea_stack", "blowhole", "coral_reef"],
"scrubland": ["cave", "plateau", "spring", "sinkhole", "canyon", "monolith", "rock_spire"]
}
}
}
]
}
]
}
}