GitHunt
AN

anthonylangsworth/RoutePlotter

Plot the shortest route to visit a set of star systems in Elite: Dangerous.

Route Plotter

Introduction

Route Plotter is a small Python program that calculates the shortest route to visit all star systems where a minor faction in the Elite Dangerous galaxy is present. Visiting each star system in-game while running a tool like Elite Dangerous Market Connector (EDMC) ensures the data in third-party tools like Inara, EDSM and elitebgs.app is up-to-date. This helps players supporting a minor faction determine whether work is required to support, protect or expand their minor faction.

This problem is a traditional "travelling salesman" problem, solved using a genetic algorithm with the MLROSE library.

Use

In a Linux prompt (using Windows Subsystem for Linux (WSL) on Windows):

  1. Download the files, such as by a git clone of this repository's URL.
  2. Navigate to the folder containing the files from this repository.
  3. Run pip install -r requirements.txt to download dependencies. This only needs to be run the first time. After that, the dependences are present.
  4. Run wget https://www.edsm.net/dump/systemsPopulated.json.gz to download the latest data on populated star systems from EDSM. Run this (1) the first time, (2) when the minor faction expands into a new system, (3) when the minor faction retreats from a star system or (4) it has been a while since you ran this program, just to be safe.
  5. Run gunzip systemsPopulated.json.gz to decompress the downloaded file. Run this whenever you run the previous step to download new data on populated systems.
  6. (Optional) Change the name of the minor faction in MINOR_FACTION around line 135. It defaults to my minor faction but yours is likely different. This only needs to be changed once.
  7. Run python bubble_runner.py. It outputs the following to the console:
    1. The route. Start at any system then follow the jump sequence. Once you reach the end, jump to the first system and continue until you reach the star system you started at.
    2. The total distance in light years (LY). This is a rough measure of how spread out your minor faction is.
    3. The longest jump required. A ship that can jump at least this far can do the route in a single jump per step.

License

See LICENSE.

Languages

Python100.0%

Contributors

GNU General Public License v3.0
Created February 28, 2021
Updated December 6, 2022