Discussion.FTL Jumps - Thargoid/pioneer GitHub Wiki

FTL travel is achieved through the use of jump drives. These are used for system-to-system travel and also for large distance in-system travel.

For the purpose of discussion I'll assume that the jump procedure involves:

  1. player selects a target
  2. player hits JUMP button
  3. drive warm-up period (the fiction could be that the drive needs to spool up, or could be time required to get a jump target lock)
  4. jump period
  5. player ship arrives!
  6. drive cool-down (can't initiate new jump until this is over)

Some thoughts:

One of the biggest reasons that in-system jumps are being considered at all is because without them ships cannot plausibly intercept other ships except in close proximity to their hyperspace arrival point or whatever locations (stations) they're likely to be travelling to. Therefore, in-system travel must be designed to allow for interceptions, or else it hasn't served its purpose. For this reason, jumps must affect not just position but also velocity.

To reduce complexity, let's say that the player can only select a jump target from a list (sector view for system-to-system jumps; in-flight F4 menu for in-system jumps), arbitrary points in space cannot be designated as jump targets. Let's also say that the jump drive works such that on arrival the player's velocity relative to his designated target is small, but cannot be directly chosen by the player (so, if you jump to a planet you can't just decide to end up in a neat orbit). As an explanation for this, we can say that jumps rely on gravitational fields to work (e.g., when you jump you're surfing Einstein's rubber sheet or whatever), so you can only jump towards mass. Or maybe the targetting/hyperspace navigation system can only lock onto mass so you could set a destination out in interstellar space but you'd most likely end up somewhere completely different.

I'll also say that to add some variety and ways for players to get cool stories of their lucky escapes and calculating space navigation, we can let them jump early (that is, jump before the normal warm-up period is complete), with some trade-off, and/or we can let them end a jump before the jump period is complete, again with some trade-off.

Now for the jump calculations themselves:

Input variables:

  • Gravitational field strength at origin

  • Mass of target (would be gravitational field strength at destination, but that's affected by distance to target on arrival, which is one of the output variables)

  • Jump distance

  • Ship mass

  • Cut-off warm-up (if that's allowed)

  • Cut-off jump (if that's allowed)

  • Buffs and nerfs based on the drive type and the skills of your crew (e.g., Scotty gives you -2% jump duration or a dice-rolled chance of cutting the warm-up period in half in a combat situation)

  • [possibly] explicit player controlled trade-off sliders, which basically have a direct effect on the output variables below (rather than the implicit trade-offs of doing an early jump or choosing to get further away from mass at the origin before making the jump)

Output variables:

  • Jump duration
  • Warm-up/lock-on duration
  • Distance to target, on arrival
  • Velocity relative to target, on arrival
  • Probability of jump failure (ship remains at origin)
  • Probability of full misjump (ship arrives in completely the wrong place; if we're allowing this -- I'm happy to ignore it for now and fold it into the design later)
  • Total fuel/energy requirement
  • Max. power requirement (my thinking on this is that a particular drive type/class can have a max. power rating -- if a jump would require more power then you can't make the jump because your drive will [probably] melt, even if the total energy requirement is feasible)

I'm going to assume that probability of misjump and failure is low unless the player does an early jump (cutting off warm-up) or early jump exit. It could also be affected by Brianetta's drive servicing system.

Correlations:

  • Ship mass & gravitational field strength at origin -> max. power requirement
  • Jump distance -> jump duration and fuel requirement
  • Early jump exit -> jump duration (it's duration that you're cutting off), probability of jump failure, and velocity relative to target on arrival
  • Early jump -> ???
  • Mass of target -> distance to target on arrival