A test project for learning procedural generation techniques, Godot 3D development, and space game programming concepts with realistic physics simulation.
This project was created as a learning exercise to explore:
- Procedural generation algorithms for solar systems
- Godot 4.2 3D capabilities and scene management
- Space physics simulation with real astronomical constants
- Noise-based terrain generation for planet surfaces
- Procedural Solar System Generation: Creates random star systems with 0-12 planets
- Realistic Physics: Uses actual astronomical constants (Sun radius: 700,000 km, Earth radius: 6,300 km)
- Environmental Zones: Planets are placed based on:
- Goldilocks zone (habitable region)
- Frost line calculations
- Roche limit (minimum safe distance)
- Hill sphere (gravitational influence)
- Multiple Planet Types: Star, Terrestrial, Gaseous, Lava, Ice, No Atmosphere, Sand
- 3D Camera System: Free-look camera with WASD movement and mouse control
- Orbital Mechanics: Planets orbit stars with proper angular velocity
- Engine: Godot 4.2 with Forward Plus rendering
- Noise Generation: FastNoiseLite for procedural planet generation
- External Addon: naejimer_3d_planet_generator for planet mesh creation
- Scaling: Real astronomical units scaled to Godot coordinate system (scale factor: 0.0000007)
- Open the project in Godot 4.2
- Run the main scene (
main.tscn) - Click "spawn Star" button to generate a new star system
- Use WASD keys to move the camera
- Hold right mouse button and move mouse to look around
- Use mouse wheel to adjust movement speed
This project helped me learn:
- Procedural generation algorithms and noise functions
- 3D game development in Godot
- Space physics simulation and astronomical calculations
- Scene management and node relationships
- Camera systems and user input handling
- Multiple Star Systems: Planned implementation of several star systems based on noise representing gravitational hotspots
- Galaxy Generation: Procedural galaxy with interconnected star systems
These stretch goals remain planned features if I return to the project.
- W/A/S/D: Move camera forward/left/back/right
- Q/E: Move camera down/up
- Right Mouse: Look around (mouse capture)
- Mouse Wheel: Adjust movement speed
- Shift: Speed multiplier
- Button: Generate new star system
Node3D.gd: Main system controller with physics calculationscamera.gd: Free-look camera implementationmain.tscn: Main scene with UI and system setupaddons/: 3D planet generator addonbg_space_seamless.png: Space background texture