Reconnected the stars last night. Thankfully this was a pretty trivial matter, just changing around a few references. I had the foresight to make the star data/rendering system effectively just a standalone thing that can be puppeteered by any other code that needs to, so it was easy.
Meanwhile, I've been thinking once again how best to communicate to the player the flight mechanics of the game. As I've mentioned, the spacecraft operates under newtonian physics and as such it is non-intuitive for most people to fly in that way. So I am going to need some sort of instructional piece...
Hopefully the GUI I've had for a while will help people understand, as well. It's very simple, really, there are a few markers on screen showing the most important bits of information - your current velocity relative to the nearest celestial body, the forward vector of your spacecraft, and the gravity vector, if close enough to a body.
It feels fairly intuitive to me, but that's the key -
to me. I have to come up with a good way to help new players understand how flying in space can be like trying to maneuver a formula one car going 200 mph sideways across an ice lake.
I do intend to have an in-game manual, presented in-universe as the spacecraft's operation manual, including a explainer on the various astrodynamics principles you'll encounter and, importantly, diagrams showing a variety of cause-and-effect examples for maneuvering your craft. This ranges from basic things like "if you perform a burn to accelerate, you must perform an opposing burn to slow back down", to more fictional things that arise from my choices of mechanics.
I made the deliberate decision to have the spacecraft's hyperdrive not cancel out relative velocity between planets. This is easier to explain in diagrams than in words.
The spacecraft is moving at the same velocity as the brown planet, which itself is moving around the sun at 30 km/sec, and then travels via hyperdrive to the green planet.
But upon arrival, the spacecraft's "real" (non-hyperspace) velocity vector has not actually changed, relative to the sun, meaning it's now traveling something like 40 km/sec relative to the green planet (near enough - the exact vector math is unimportant here), and must make up that difference with a long burn from its engines.
This is a very deliberate design choice! It adds an additional element to interplanetary travel, requiring you to think about your exit vector relative to your arrival point (this is displayed on the map, and also will display a big red collision warning if your exit vector will smack into something). It would be relatively easy to automatically match velocities upon arrival, and I might make a game option for that for people who don't want to mess with it. It does allow some interesting things, though. For instance, if you put your exit vector to simply skim a planet's atmosphere, you can use the atmosphere to slow down instead. Also, you can turn on the autopilot and let it brake for you while you go in the back and make a space sandwich, albeit while everything is shaking and rattling a bit from the engines going.
One fuzzy point, though, is whether to do this with interstellar travel. All stars around us are traveling at different speeds relative to the sun, sometimes on the order of hundreds of kilometers per second. But hundreds of km/sec is a lot to ask for players to do upon arrival. So at present it just assigns a randomized entry velocity +- 10 km/s or so upon reaching another star.