Skip to content

WorldGen features

  • Infinite chunk streaming from an actor pool, with no spawn or destroy overhead.
  • Async mesh generation on a thread pool, so the game thread is never blocked.
  • Async collision cooking, on by default.
  • Seamless chunk normals from a one-vertex border overlap.
  • Distance-based LOD with a resolution per ring, plus a low-resolution far terrain ring beyond the near grid.
  • Floating-point precision fix: no texture stretching at 2M+ world units.
  • Seeded RNG per chunk: deterministic foliage, grass, actor, building, road and settlement placement.
  • Layered noise stack with any number of layers. Layer 0 is the continental mask.
  • CLMNoise: Perlin, Simplex, Cellular, Ridged Multifractal and Domain Warp. Original code, no third-party dependencies.
  • Domain warping applied globally before layer evaluation.
  • Hydraulic erosion: a droplet simulation that runs fully async.
  • Terrain deformation (experimental): real-time spherical brushes whose edits persist across chunk rebuilds.
  • Runtime seed changes: SetSeed() rebuilds the world gradually with no hitching.
  • Biome blending: vertex-colour weights for Grass, Rock, Snow, Beach and Underwater.
  • Beach layer: a height band above sea level with flattening.
  • Spatial biomes: temperature and humidity noise produce Tundra, Boreal, Desert and Tropical zones, each with its own snow, rock and grass thresholds.
  • Desert sand layer with no material changes needed.
  • Biome climate filter: a per-foliage and per-grass Climate Biomes mask, for example cactus only in deserts or pine only in boreal zones.
  • Biome Blend / sharpen for flat biome interiors that blend only at the edges.
  • Per-biome terrain height: flatten or raise terrain by climate (deserts are flatter by default). Roads, rivers and terrain queries all follow the shaped ground.
  • ISM foliage from BiomeFoliageAsset data assets, with no BVH spike on chunk load. HISM is optional.
  • Dense grass on a world-snapped grid, with fixed spacing (GrassGridSize) and clustering around world-fixed centres.
  • Per-instance collision range: one asset can show a wide visual field with physics only near the player.
  • Slope sink depth: no floating blades on slopes.
  • Nanite compatible: ISM foliage and grass render correctly through Nanite.
  • Water plane at sea level that follows the player.
  • Subdivided water mesh for World Position Offset waves, with a manager-driven Wave Height.
  • Wet Zone Offset widens the shoreline wet/foam band without moving the water plane.
  • MPC_WorldGen exposes the water level and per-frame camera-underwater state to materials.
  • Underwater post-process material with tint and refraction.
  • Deterministic settlements: a pure function of seed and region, so they are infinite, reproducible and seam-free.
  • Procedural road network: a planar graph (at most 4 roads per town) routed with slope-weighted A*, water avoidance and above-water causeways.
  • Terrain-graded roadbeds with a painted tarmac weight, plus flat settlement pads.
  • Junctions: through-roads and perpendicular T-branches, rendered as spline-mesh roads.
  • Bridges with their own deck mesh and material, optional gorge bridging and extend-to-ground pylons.
  • Roadside props: instanced light poles, mile posts, guard rails, bollards and pylons.
  • Road and settlement data assets, reusable across levels.
  • Hitch-free road streaming: time-sliced mesh builds and collision only in a window around the player.
  • Exclusion volumes: flatten terrain and suppress foliage and grass inside a placed box, with a blend radius.
  • Actor spawner: WorldGenSpawnerAsset scatters real Actors by biome, slope and height, rate-limited and deterministic.
  • Roadside and town buildings: spawner assets can target Near a Road or Near a Settlement with an edge-to-edge distance band, face the road (Align To Target), stay on the graded shoulder, or stay away from roads (Invert).
  • Footprint-aware placement: each building’s real footprint stays off tarmac, pads and other spawns, with Rest On Ground, Foundation Depth and Stand On Highest Point for uneven ground.
  • Consumed positions: mark mined or collected spawns and save/restore them.
  • Terrain query API: SampleTerrainAt() (height, slope, normal, biome weights), GetHeightAtWorldPos() and GetGradedHeightAt().
  • Multiplayer: terrain streams around every connected player. Listen server, client and dedicated server work with no extra setup.
  • Dedicated server mode builds collision geometry only.
  • Per-player terrain load delay, including late joiners.
  • Runtime navigation (experimental): an auto-spawned NavMeshBoundsVolume follows the player. Coverage is limited at large tile sizes; see Troubleshooting.
  • Automated test suite: a shippable WorldGenTestRunner actor (also the WorldGen.RunTests console command and -WorldGenTest launch switch) visits junctions up to 80 km out. It checks road continuity, overlaps, buried or floating tiles, missing meshes, open ports, seams and building placement, and writes a JSON report with screenshots.
  • Full C++ source (one runtime module, WorldGen)
  • Pre-built landscape material with biome blending
  • Sample foliage and grass data assets, with tree, pine, cactus and grass meshes and materials
  • Sample spawner data asset and demo actor
  • Gas station, diner, shop row and warehouse building Blueprints with roadside and in-town spawner assets
  • Sample road, bridge, light-pole and pylon meshes with materials, plus road and settlement data assets
  • Demo map and automated test map