
描述
PlanetGen is a runtime C++ plugin (with full Blueprint support) for Unreal Engine 5 that generates streaming procedural worlds — spherical planets AND cylindrical ring worlds (O'Neill habitats) you can fly around, land on, and explore. Async chunk streaming, layered 3D noise, spatial climate biomes with polar ice caps, player-following grass and foliage, hand-authored exclusion volumes, a biome-aware actor spawner, a depth-tinted ocean you can wade into, per-planet atmospheres, ring structural shells, and a multiplayer-ready gravity framework (radial planet gravity AND centrifugal ring gravity) — all without blocking the game thread.
Playable demo | Documentation | Discord Community
1.9 Exclusion Volumes
1.9 Depth Tinted Planet Oceans
1.6 LOD
1.6 Multi Planet Streaming
1.6 Atmosphere Dark Side
1.5 Ring World
1.4 Multiplayer
1.3 Climate Zones
Preview 1.2 - 50km Walkable Planet
0.1 Cube-Face Sphere Terrain Explained
0.2 Noise Layering & Biome Blending Explained
0.3 Biome-Aware Vegetation System
New in 1.9: a DEPTH-TINTED OCEAN on planets AND rings, hand-authored EXCLUSION VOLUMES that flatten level pads and clear foliage/grass, a biome-aware ACTOR SPAWNER that scatters real actors across the surface, full WADE / AUTO-JETPACK water traversal on ring worlds, and a UE 5.4 / 5.5 volumetric-cloud fix.
Includes a ready-to-use multiplayer gravity character (BP_GravityJetpackCharacter) with client prediction — walk, wade, fly, hyperdrive and land anywhere, solo or multiplayer. Drop a planet or ring in and its gravity field is automatic.
Drop ACLMPlanet (sphere) or ACLMRingWorld (ring) into your level, assign a material, and click Preview. Hit Randomize for a new world.
──────────────────────────────
NEW IN 1.9
──────────────────────────────
▸ Depth-Tinted Ocean (planets AND rings) — the water colours by depth: vivid turquoise shallows fading to deep navy offshore, a shoreline foam line, and clear shallows that reveal the seabed. It stays OPAQUE (Single Layer Water), so it always sorts behind the volumetric clouds from orbit. Depth is baked per water vertex — seam-free, no per-frame cost. (Keep Adaptive Water Tessellation on.)
▸ Exclusion Volumes — drop APlanetGenExclusionVolume on a planet or ring to flatten the terrain into a level pad and suppress foliage and grass, for hand-authored content: villages, landing pads, dungeon entrances, streamed sub-levels. The pad lies flat against the curved surface (one-click "Align To Planet"), a blend radius eases it back to natural terrain, and it stays seam-free across streamed chunks.
▸ Actor Spawner — scatter real Actors (not instances) around the player from a data asset: ore nodes, harvestable plants, wildlife, enemy spawns, loot, points of interest. Deterministic and seam-free, filtered by biome, slope and height, snapped to the surface, budgeted per frame, and despawned outside a radius. Respects Exclusion Volumes.
▸ Full Ring-World Water — ring worlds get the depth-tinted ocean AND the same wade / auto-jetpack water traversal as planets, on both inner- and outer-surface rings.
▸ Volumetric Clouds Fixed on UE 5.4 / 5.5 — a 5.6+ cloud reconstruction fix was also applying on 5.4 / 5.5, where it blanked volumetric clouds; it is now gated to 5.6+, so every engine version renders clouds correctly.
──────────────────────────────
MANY PLANETS & REAL ATMOSPHERE
──────────────────────────────
▸ Multi-Planet LOD — a central arbiter streams full terrain for the nearest planet and renders every other as a single low-poly far sphere, so only ONE chunk pool is ever alive — a hitch-free occlusion handoff.
▸ Per-Planet Atmosphere & Correct Night Side — per-planet scattering, ground albedo, cloud altitude and sun shadow on UE's Sky Atmosphere; distant planets get a fresnel halo + cloud shell, and a shader-space terminator darkens the night side.
──────────────────────────────
CORE FEATURES
──────────────────────────────
▸ Streaming Terrain — spheres use a cube-face parameterization (6 faces), rings a cylinder. Both stream chunks from a runtime actor pool built on a thread pool, with a memory guardrail — the game thread is never blocked.
▸ Layered 3D Noise — sampled in 3D world space, so terrain is uniform on every face with no pole distortion or seams. Original CLMNoise library (Perlin / Simplex / Cellular / Ridged / Domain Warp), no third-party dependencies.
▸ Spatial Climate Biomes — a temperature x humidity model sorts every point into a Tundra / Boreal / Desert / Tropical matrix (each with its own snow / rock line, grass density and sand), plus polar ice caps. Deterministic and seam-free.
▸ Biome Blending — per-vertex Grass / Rock / Snow / Underwater weights plus shoreline beach and sand, seamless normals; the included M_Planet wires it up.
▸ Ring Worlds — ACLMRingWorld builds cylindrical O'Neill habitats on the same pipeline. Terrain streams on the INNER surface (centrifugal gravity, world curving overhead) or the OUTER, with a collidable shell, end walls and stacked cloud / atmosphere layers.
▸ Multiplayer Gravity — placeable sphere / cylinder / box volumes with priority and Gravity Strength (1 = Earth, 0.165 = Moon). Planets auto-register a radial field, rings a centrifugal one. Full client prediction; gravity is recomputed from position, never replicated.
▸ Zero-G, Jetpack & Hyperdrive — mark regions (or the level default) zero-gravity for space; jetpack hover with a gravity-aligned orbit camera; fast-fly hyperdrive for point-to-point travel.
▸ Grass & Foliage — dense ISM ground cover follows the player, shape-aware for spheres and rings, with clustering, climate filter and per-instance collision. HISM tree/rock scatter runs on the thread pool.
▸ Procedural Water — a sea-level sphere (planets) or cylindrical band (rings), adaptively tessellated to stay smooth at any size. Single Layer Water, so clouds render over it from space.
▸ Blueprint Interface + Preview — IPlanetInterface exposes radius / gravity radius / centre / seed. Every world is seeded and deterministic; CallInEditor buttons rebuild terrain without entering Play. Co-installs with other CodeLikeMe plugins (all types uniquely prefixed).
──────────────────────────────
INCLUDED
──────────────────────────────
▸ Full C++ source
▸ Planet material (M_Planet) with biome blending, desert sand, slope mask and day/night terminator
▸ Atmosphere content — far-halo / cloud-shell materials, MPC_Planet, terminator material functions and atmosphere assets
▸ Ring materials (M_Ring, M_RingAtmosphere, M_RingClouds, M_RingPostProcess + MPC_Ring), the depth-tinted Single Layer Water (M_PlanetWater) and a simple flat-colour water (M_SimplePlanetWater)
▸ Exclusion Volume actor and Actor Spawner data asset for hand-authored pads and world scatter
▸ Sample foliage and grass assets (trees, pine, cactus, grass) with meshes + materials, a jetpack mesh, and biome textures
▸ BP_CLMPlanet and BP_GravityJetpackCharacter / BP_GravityCharacter demo characters (jetpack + hyperdrive + water traversal) + input assets
▸ PlanetMap, PlanetMap_Atmos, PlanetsMap, MultiPlanetsMap and RingMap demo levels
──────────────────────────────
PERFECT FOR
──────────────────────────────
Space games, planetary exploration, sci-fi survival, multi-planet solar systems, O'Neill-cylinder habitats — any project needing streaming planets or ring worlds with real terrain, biomes, atmospheres, multiplayer gravity and foliage without writing cube-sphere math, noise, streaming, LOD or gravity from scratch.
──────────────────────────────
NOTES
──────────────────────────────
▸ Requires the ProceduralMeshComponent and EnhancedInput plugins (bundled with UE5, enabled by default).
▸ The depth-tinted water needs Adaptive Water Tessellation ON (default). If you disable it, use the included M_SimplePlanetWater instead.























