Closed thombruce closed 10 months ago
a576f6d3f741b5ecbc4d5c5bd45ff7ce9d475341, 1109ee1e638f05e34c6bba9f938e28976e8de42d, b26dfd1ee2831583c762d22fffc64873448790f0
These three commits add art assets that vaguely resemble our eight planets, they add accurate orbital values, and they add the masses of each planet.
What's still left to do?
We should also add the asteroid belt.
The belt is estimated to contain between 1.1 and 1.9 million asteroids larger than 1 kilometer (0.6 miles) in diameter, and millions of smaller ones.
This belt then will be best drawn as a circle around the star, within which we place asteroids either procedurally (semi-deterministically) or at random.
Some bodies, like comets and certainly player and enemy ships, should be able to pass through the belt with certain guarantees that they won't collide. Halley's comet, for example, should have an orbit that crosses the orbital paths of most of the planets and the asteroid belt, and it shouldn't collide with them.
On the other hand, we do also want asteroids to be interactive and a valuable resource that can be mined.
These are some somewhat contradictory terms. One way we might imply distance is by blurring distant objects, to create the illusion that (of course) Halley's comet is simply passing by the asteroid belt and not actually through it where it might collide. A sort of false depth, similar to what we're planning for planetary surface elevation and landings.
As a start, it will be reasonable to simply plot all orbital objects and the procedural plane of the asteroid belt and just... not enable collisions. Much like planets already aren't collidable, objects would simply pass one another by. After this, we can start to think about how varied objects should be interacted with by the player - most notably that asteroid belt, which should not inhibit interplanetary flight but should be explorable/exploitable.
As it stands, I have a system with 1 star, 8 planets and 1 moon. An accurate mass and some loose orbital values have already been provided for the Sun and Earth.
Add orbital values for the other seven planets, increase the scale of the system to an accurate level (and then modify by a scaling factor for playability).
Also scale orbital times.
Output orbital period for Earth to verify accuracy.
When setting the initial positions of the planets...
Prefer to do so for some actual date, NOT for
game_time
. Thegame_time
does not reflect the time and date of the game, even though it is used to calculate it. The initial starting time and date is open to being changed or even set directly by the player (perhaps playing a different scenario if we introduce different game starts). Prefer to calculate the positions from some known date in the past, rather than for the game's initial date.