A downloadable game

Buy Now$6.99 USD or more

Procedural planets that are playable, not just pretty. A seed and ~90 numbers become a cube-sphere world where 50–75% of the surface is walkable by construction — with player starts, gold mines, and guaranteed-connected roads already carved in.


⚠️ Read this first 🖌️ Built-in RP only. The terrain shader won't compile under URP/HDRP, but mesh, walkable tuning, region planner, roads, and scatter are pipeline-independent (colors bake to CPU-side ramp textures). Setup Check flags SRP projects; docs cover the port. 🧪 Early beta — deterministic, feature-complete, API not frozen. Saved planets upgrade across versions; custom code against settings might not. 🚫 No art included. Prefab slots for starts, gold, and trees ship empty on purpose.

🌍 A planet is a seed Custom noise/RNG (not Mathf.PerlinNoise or System.Random) means the same seed regenerates identically forever, across Unity versions and platforms. A whole planet saves as a ~4 KB JSON — diffable, commit-friendly.

📊 Playable by construction Three binary searches, decoupled by design:

  • 🌊 Sea level → water share (mountains only add height above shoreline)
  • ⛰️ Mountain scale → walkable share
  • 🏔️ Land height scale → kicks in only if mountain scale bottoms out

Each pass multiplies cached height values — no re-noising, so tuning is sub-second. Across 12 test seeds, every planet landed inside the 50–75% band, with both walkable % and legal nav-node % printed after every build.

🗺️ Maps, not just spheres

  • 🚩 2–8 player starts, spacing from Furthest to Random, clamped to physically possible separation
  • 🏗️ Flattened plateaus with blended shoulders, minimum height above sea level
  • 💰 Symmetric gold mines per player
  • 🌾 Neutral plains away from starts
  • 🛤️ Roads (Ring / Ring+diagonals / Full mesh), connectivity verified after every build
  • 🌿 Branch paths extending walkable coverage, respecting minimum patch size

🌊 Oceans that are actually oceans Ocean/mountain concentration dials pool water and ranges into basins/belts instead of even puddles — same total share, real geography. Mountain belts get taller to compensate, like real ranges.

🎨 Colour that doesn't look like a gradient Height-based ramps, latitude-driven biomes with noise-warped borders, exact biome shares (via Archimedes' hat-box theorem), threshold-based bare rock, and macro hue/value variation. Bakes to two ramp textures + 3 UV channels — cheap fragment shader, no per-pixel height math.

🌲 Scatter that lands where it should Named layers (trees, rocks, ore) with clustering, spacing, edge bias, and guaranteed presence near starts/roads. A configurable fraction can land on unwalkable ground for free cliff detail.


🧰 Tooling

  • 🪟 Generator window with persistent prefab slots (asset GUIDs)
  • 💾 Planet Preset ScriptableObjects (Create / Apply / Capture)
  • 🩺 Setup Check — 21 findings, 7 groups, silent when clean (one first-run info message, ever)

🧩 Zero dependencies — only System, System.Collections.Generic, System.Diagnostics, System.IO, UnityEngine. Optional reflection-based integration with Planet Pathfinder.

📦 Box contents: 14 runtime + 8 editor scripts (~9,900 lines), 2 asmdefs, 1 Built-in RP shader, 3 example JSONs, full docs, README, CHANGELOG, LICENSE.

Requirements: Unity 6000.2 tested (2022.3 min, unverified). Built-in RP (URP/HDRP need a Shader Graph swap). Install to Assets/PlanetGenerator.

❓ Runtime generation works via Generate(), but workflow is editor-time. Mesh auto-switches to 32-bit indices above 65,535 verts. Planet Pathfinder is optional.

📄 License: One seat, unlimited personal/commercial projects, no royalty, no attribution.

Collaboration with: https://thelonegamedev.itch.io/

Updated 13 days ago
Published 17 days ago
StatusReleased
AuthorMonteJaran2001
TagsAsset Pack, Generator, Unity
AI DisclosureAI Assisted, Code

Purchase

Buy Now$6.99 USD or more

In order to download this game you must purchase it at or above the minimum price of $6.99 USD. You will get access to the following files:

PlanetGenerator_1.0.0-beta.unitypackage 179 kB