### Post by Moopli on Jun 5, 2016 20:10:51 GMT

I'm interested in having a discussion about how Thrive will model space in the space stage, and you're all invited.

Here's a summary of what I'm thinking so far:

- Each solar system has a center, with a bunch of astronomical bodies orbiting around it. The paths of spacecraft would be affected by the gravity of these bodies, obviously. We'll avoid the n-body problem by using Hill spheres, much as how KSP, for example, does, so the path of any spacecraft is just a composition of conic sections.

- We'll also have Hill Spheres centered at Lagrange points, allowing you to set up, for example, a propellant depot orbiting at the L2 point of your planet's moon for easy refueling before an interplanetary adventure.

- We'll also need a concept of stable orbits, that is, any orbit that will never end up intersecting another Hill Sphere (which is the only way an orbit can change without the spacecraft intentionally making an impulse).

- We can easily find the ΔV of any particular transition between two orbits, and add those together to figure out the cost of a particular path.

- However, to model the economics of an interplanetary civilization, we need to be able to compare costs of various routes, and even of various schemes (should we mine the moon for fuel? Should we mine asteroids, and if so, which and for what?). Since the cheapest routes might only be available at certain times (eg, every 26 months for cheap transits to mars), then we either need an economic model that has to time every single shipment properly (which is annoying), or we need to make every route take you from one stable orbit to another (where, say, a shipment of resources, can simply wait until it's the right time to move to the next destination).

If we have an economic model that can ignore the exact path that a ship will take from one place to another, and simply thinks in terms of the time and the cost, then we can abstract away the entire notion of having to send a ship along an orbit, and can instead think in terms of having "logistics routes", and moving resources along them from one place to another. This abstraction would allow the player to avoid worrying about the navigation of some specific ship, but instead worry about the flow of resources to a new moonbase, or from an asteroid mine, etc. The abstraction is also valuable for the AI, allowing for a much more tractable optimization problem. Once the player sets up a logistics route, we could even avoid having to plot the motion of the spaceships that carry resources along the route, since the route has a set cost, and a set transit time, which we can assume is the same for each ship; meaning that even as the player greatly increases the amount of stuff going on in space, we can avoid bringing the player's computer to its knees.

Thing is, while I'm reasonably sure such a design will be tight and easy to do interesting things with, I'm not sure it will be fun, and I'm not sure what will have to change when the player develops FTL travel. So, what do you guys think? Does this make sense? Does it sound interesting? Any suggestions?

Here's a summary of what I'm thinking so far:

- Each solar system has a center, with a bunch of astronomical bodies orbiting around it. The paths of spacecraft would be affected by the gravity of these bodies, obviously. We'll avoid the n-body problem by using Hill spheres, much as how KSP, for example, does, so the path of any spacecraft is just a composition of conic sections.

- We'll also have Hill Spheres centered at Lagrange points, allowing you to set up, for example, a propellant depot orbiting at the L2 point of your planet's moon for easy refueling before an interplanetary adventure.

- We'll also need a concept of stable orbits, that is, any orbit that will never end up intersecting another Hill Sphere (which is the only way an orbit can change without the spacecraft intentionally making an impulse).

- We can easily find the ΔV of any particular transition between two orbits, and add those together to figure out the cost of a particular path.

- However, to model the economics of an interplanetary civilization, we need to be able to compare costs of various routes, and even of various schemes (should we mine the moon for fuel? Should we mine asteroids, and if so, which and for what?). Since the cheapest routes might only be available at certain times (eg, every 26 months for cheap transits to mars), then we either need an economic model that has to time every single shipment properly (which is annoying), or we need to make every route take you from one stable orbit to another (where, say, a shipment of resources, can simply wait until it's the right time to move to the next destination).

If we have an economic model that can ignore the exact path that a ship will take from one place to another, and simply thinks in terms of the time and the cost, then we can abstract away the entire notion of having to send a ship along an orbit, and can instead think in terms of having "logistics routes", and moving resources along them from one place to another. This abstraction would allow the player to avoid worrying about the navigation of some specific ship, but instead worry about the flow of resources to a new moonbase, or from an asteroid mine, etc. The abstraction is also valuable for the AI, allowing for a much more tractable optimization problem. Once the player sets up a logistics route, we could even avoid having to plot the motion of the spaceships that carry resources along the route, since the route has a set cost, and a set transit time, which we can assume is the same for each ship; meaning that even as the player greatly increases the amount of stuff going on in space, we can avoid bringing the player's computer to its knees.

Thing is, while I'm reasonably sure such a design will be tight and easy to do interesting things with, I'm not sure it will be fun, and I'm not sure what will have to change when the player develops FTL travel. So, what do you guys think? Does this make sense? Does it sound interesting? Any suggestions?