Procedural Solar Systems

This was my final year project for my Computer Engineering degree. The aim was to develop a game that could procedurally generate solar systems including stars, planets and moons. By interacting with these objects the player would start to learn some basic lessons in astronomy and planetary science.

The project was developed using Unity3D over the course of roughly 5 months. The planet surfaces are generated using Ken Perlin's simplex noise generation method. Each planet starts off with a handful of randomly chosen properties. Other physical properties are then calculated based on real world physics. The physical formulae are slightly altered for more visually appealing planets. Properties such as size, density and distance from the star affect other properties like gravity and temperature.

I continued to experiment with the project after it was complete. One feature I did not have time to include in the project was a more robust physics simulation. The planets orbit in a perfectly circular motion and the paths cannot be altered. I experimented with adding a full physical simulation of their orbits. This allows the planets to have more varied and realistic orbits and can even collide with one another.

Download the game

Download the report

View the planet generation C# code