
Project overview: The game illustrates how a solar system/galaxy works, with animated 3D objects, representing planets, the main star (Sun) and general other celestial bodies, such as SOL(Seeds Of Life) or ordinary meteoroids.
A SOL is a meteoroid that contains life-giving particles, molecules of organic substance that can develop through chemical reactions to produce amino acids, etc.
The end-user's perspective, the game is just a galaxy creator/simulator, where the user can choose to create other planets, modify the existing ones or even delete them from the existing solar system, based on user parameters input during the game.
The user can experience what simulating a solar system feels like, while enjoying a smooth physics-based game engine, which constantly calculates for each and every planet it's relative position to the Sun as well as it's speed and mass, to handle collisions between planets and SOLs. When two planets collide, given the fact that our game needs to have a bit of fiction inside it, the two planets will merge, creating a new one, which has properties based on the two planets that define the collision.
Our game compares with other existing solar-system emulators, such as Universe Sandbox or the Solar System Scope, by the simple fact of being very accurate in its measurements and its unique implementation of life probability measurement tools, for each planet.
Also, the user can see how life expansion works amongst other planets, interacting with them, forcing the spawn of a SOL to hit them, receiving the data generated by the collision.
Second of all, from a programmer's perspective, there are two main parts of the game:
From the front-end side of things, we used a physics engine to constantly calculate in real time the trajectory, speed and orbit of each separate planet. We managed to simply calculate the relative path (the orbit) by using basic cartesian physics, while setting our planet to constantly "look" at the sun (we set our planet to be oriented from an origin perspective to always have the speed just as high for it to cancel out the pulling force created by the Sun, thus making it follow an orbit, which we calculate further along in the same iteration of the code).
On the other hand, the back-end is a bit more complicated. Using an abiogenesis calculation function to compute the probability of life based on a given time period, we managed to calculate the exact time in which we are going to have life on any given planet, after a collision with a SOL (we decided to make the threshold range between 0 and 0.5, 0 meaning no life and 0.5 meaning there is surely life, as soon as possible, from where we calculate the needed time for the planet to reach that level of population).
Also, the game being created on a very accurate physics engine, it can also be used in highly educational purposes, both regarding the accurate measurements of every planet and it's trajectory, based on it's mass, size and previous collisions it suffered, but also the fact that it may have life on it, which can evolve and spread to other planets, making a good tool for statistics in that domain, for scientific purposes.
Sources:
https://www.pnas.org/content/113/29/8127
https://en.wikipedia.org/wiki/Solar_System
Code snippet: