Jumping Across The Galaxy

I’ve recently been busy exploring the galaxy in Elite:Dangerous, which I’ve written about before. It’s an interesting game, and the in-game universe is beautiful and awesome, at least once you get away from “civilized” space (where other players and NPCs often shoot at you for no logical reason.)

However, as you quickly find out, the galaxy is a big place. It’s about 100,000 light years (ly) across. Even in a 34th-century starship with faster-than-light drive, that’s a long way. The FTL frame-shift drives in E:D work by jumping from star to star. The farther the destination star from your current location, the more fuel is consumed. Also, for each ship+engine combination, there is a maximum possible jump distance.

When out exploring (heading out to find the lucrative Neutron Star fields, for instance), it doesn’t take long to start thinking of distances in terms of jumps. Soon, those fancy ship accessories start looking more like boat anchors, and you start to think about offloading them to get that last bit of jump range.

But that begs the question — how important is that last little bit of jump range, really? If your ship can do 30.1ly at a jump, is it really worth downgrading to Class D thrusters to get that last little bit of range?

Sometimes, yes, it does matter. If your path goes through sparse patches of stars, gaps in star placement can look like bottomless chasms that cannot be crossed (since none of the stars on the other side are in range.) For want of that last light-year or two, you might have to go around the void, adding many jumps to your trip — or you might not be able to reach these stars at all.

At the other extreme, sometimes more range isn’t important. If you can get to a destination in fifteen jumps with a 30.6ly range, increasing your max range to 31.6ly might not matter, if the best path still has the same number of jumps.

How to calculate this? Well, without the actual data from the Stellar Forge engine, it’s all ultimately guesswork. However, we can take a stab at finding the conditions under which range increases matter, based on a random scattering of simulated stars.

This simulation code (written for FreeBasic for Windows) creates a 1000 x 100 x 100 block of space and populates it with a fixed number of stars. All of the stars except the first and last are placed at random locations within this block, and Dijkstra’s Algorithm is used to navigate from one side of the block to the other. For extremely small jump distances, the ship cannot reach the other side. However, once the available jump range passes a given mark (17.0ly, in one simulation), the destination star becomes reachable. Further increases in jump range often result in the destination being reachable in fewer jumps.

Based on a preliminary simulation of 100,000 stars in the 100 x 100 x 1000 light-year “box,” here are the results for how many jumps were needed to reach the destination. (The same star positions were used for each run, so as to give a fair comparison.) The percentage of stars reachable from the starting position is also given. (Some of these may be isolated along the edges of the box, and would be reachable in a more realistic simulation. Another item for the to-do list.)

Jump Range Jumps TMJ % Efficiency % reachable
15 67 0 35.9
15.5 65 0 40.8
16 63 0 42.69
16.5 61 0 46.87
17 94 59 62.76 52.71
17.5 86 58 67.44 53.84
18 78 56 71.79 60.63
18.5 74 55 74.32 67.35
19 71 53 74.64 68.51
19.5 67 52 77.61 71.05
20 66 50 75.75 72.36
20.5 63 49 77.77 76.79
21 61 48 78.68 77.53
21.5 58 47 81.03 79.69
22 57 46 80.7 84.37
22.5 55 45 81.81 84.72
23 53 44 83.01 84.89
23.5 52 43 82.69 86.41
24 51 42 82.35 86.7
24.5 48 41 85.41 86.8
25 47 40 85.1 86.9
25.5 46 40 86.95 90.51
26 45 39 86.66 90.85
26.5 44 38 86.36 91.34
27 43 38 88.37 91.44
27.5 42 37 88.09 91.6
28 42 36 85.71 91.64
28.5 41 36 87.8 92.36
29 40 35 87.5 92.43
29.5 39 34 87.17 92.44
30 38 34 89.47 92.53
30.5 37 33 89.18 94.02
31 37 33 89.18 94.09
31.5 36 32 88.88 94.14
32 35 32 91.42 94.34
32.5 35 31 88.57 94.63
33 34 31 91.17 94.69
33.5 34 30 88.23 94.72
34 33 30 90.9 96.26
34.5 33 29 87.87 96.28
35 32 29 90.62 96.53
35.5 32 29 90.62 96.57
36 31 28 90.32 96.9
36.5 31 28 90.32 96.96

I’m currently investigating the effects of star density on these calculations. I expect the results to scale according to the average distance between stars, which should intuitively go by the cube root of the number of stars (since a lattice of stars with half the distance would have 8x as many stars per unit volume, on average.)

This entry was posted in BASIC, Coding, Current Events, Math, Science. Bookmark the permalink.

Leave a Reply