published on June 16, 2025 in devlog
Michi goes into detail why the navigation system needs an update to support the upcoming gateways.
Michi (molp)
Hey, I’m back from vacation, so naturally there is little to report.
Nonetheless, I want to go a bit into the details of what Martin mentioned in devlog #486. From a technical perspective, flight planning in Prosperous Universe is pretty straight forward at the moment: The user submits a mission request that contains an origin address, a destination address and a series of system addresses in between the two. The server validates the input, especially if the series of systems are connected, and then takes additional information (fuel usage etc) and calculates a list of mission segments. It is straight forward, because the map is static: The systems' connections are static in both properties: distance and number. So there is always a single fastest/shortest route from an address in system A to destination in system B.
The upcoming gateways will change that premise: As I mentioned in previous devlogs gateways might not work all the time, they might lack fuel or upkeep. There might be multiple gateways in the same direction, and there are also costs associated with gateways in the form of fees. We’re pretty sure that players want to have a way to control which route a ship is taking.
All that requires a new (or at least modified) flight planning system that encompasses the changes that are about to come. The new pathfinding system will work entirely on the server side. It uses a pathfinding algorithm that supports changing connections (i.e., gateway links) as well as multiple properties on the links themselves, think distance, fees, etc.
I started some experiments to set up a graph of navigation nodes and edges on which the algorithm will work, to get a feel for the problem space. I very much hope that we will be able to provide similar tools as real navigation tools do these days: provide the fastest route, the least expensive route, the most efficient route, and so on as well as options to disregard gateway links for example. I don't want to promise too much yet though, I’m at the very beginning of looking into how this can work.
As always, we'd love to hear what you think: join us on Discord or the forums!
Happy trading!