Tag Archives: orbital mechanics

Maneuver Selection

Maneuver Selection Screen, 4 March 2014
Maneuver Selection Screen, 4 March 2014

One of the most significant interface challenges with Slower Than Light is helping players give maneuver orders to their spacecraft.  There are a number of trade-offs the player might make when selecting how to get from one celestial body to another, from the lowest delta-V route to the soonest arrival time.  Not only does the delta-V used have to be considered, but when the departure should be made; Hohmann transfers are generally very cheap, but the window to transfer to a sibling body only happens once or twice every orbit or two.  Meanwhile, a direct burn is often preposterously expensive, and many spacecraft simply wouldn’t be able to maintain thrust for that long.

The way STL handles this at the moment is it always presumes a Hohmann transfer, and list options for near-by targets (usually siblings of the spacecraft’s primary, the primary’s primary and its satellites) and has options for low and high orbit.  When departing a Gas Giant with many moons, this can end up being quite the extensive list.  Also, it makes interstellar transfers practically impossible, due to the immense length of time it would take two nearby stars to reach a Hohmann transfer configuration, and the considerably shorter time it would take for the spacecraft to actually make the transfer.  On the upside: extraordinarily low delta-V requirements to get to Alpha Centuari!

Obviously, the flight planner itself needs some work, but so does the selection mechanism.  Right now you just select the next destination orbit from a menu.  Besides only allowing the Hohmann transfers as indicated above, it prevents doing direct-insertion into other systems.  For instance, if I wanted to go from LEO to an orbit around Titan, the current system requires me to transfer into a circular orbit around Saturn before making a burn to move from Saturnian orbit to Titan.  For any given position of the three bodies in question, there is almost certainly an option that uses less delta-V that skips the injection into Saturn’s orbit.  As written now, that transfer isn’t an option for spacecraft in STL.

If I teach the flight planner how to calculate those orbits, though, it is going to start having huge numbers of maneuver options for each spacecraft.  That’s good, but I’m going to need to come up with a more sophisticated interface for selecting a destination.  That solution should probably be contextual, but having a searchable list of all achievable orbits would, I think, also be very useful.