These forums have been archived and are now read-only.

The new forums are live and can be found at https://forums.eveonline.com/

EVE Technology Lab

 
  • Topic is locked indefinitely.
 

System Navigation. How can I get systems in a route from system A to B?

Author
Eric Agerwal
Cryosoft
#1 - 2012-12-10 16:08:02 UTC  |  Edited by: Eric Agerwal
I know the game mechanics allow you to select a 'calculation method'. .e.g. fastest or safest, and accordingly the route plotted changes to match it.
Is there an API that pertains to the in game navigation that I can hook into with the parameters; 'from system id', 'to system' id, 'calculation method', and get back a collection of system ids for a route?
If so can someone enlighten me. If not, can the devs make a pubic API for it. Thanks
Steve Ronuken
Fuzzwork Enterprises
Vote Steve Ronuken for CSM
#2 - 2012-12-10 18:06:38 UTC
No api for it.

https://github.com/fuzzysteve/Eve-Route-Plan might be of use, however. (it's all pretty standard code. I've just made sure there's a place to get it.)

Woo! CSM XI!

Fuzzwork Enterprises

Twitter: @fuzzysteve on Twitter

Eric Agerwal
Cryosoft
#3 - 2012-12-10 18:26:36 UTC  |  Edited by: Eric Agerwal
I'm pretty sure it would be doable by recursively navigating systems via a database dump - but I wanted to make sure the route I calculate was precicely same in-game as I calculate it. e. g. 2+ ways of doing 3 jumps from 'a' to 'b'. I want my resultset of systems to exactly mirror in game logic. It may even be something as simple as using lowest system id for multiple choices as long as it is an exact mimic of behavior.
Liu Ellens
Sebiestor Tribe
Minmatar Republic
#4 - 2012-12-10 20:10:53 UTC
Like Steve wrote, there's no API for that and you'd have to roll your own and/or build on existing code.

I as well can offer you some, this time in JavaScript, which I'm using for upro (see signature). Its algorithm uses rules & capabilities to find the best route between two systems. The Minimum/Maximum security capabilities are close to what is happening in the EVE client, but with a different approach. I haven't made direct comparisons on an example basis whether my code produces the exact same result on equivalent parameters, but would guess so.
There are no rules that mimic the statistics based settings of the EVE-client (like 'avoid pod killing') but these could easily added by implementing the corresponding interfaces (yet there would still be a factor of uncertainty as you don't know when which client fetched the latest data).

As for optimizing the route for two or more waypoints after the start system, the EVE client most likely implements a brute force method of the travelling salesperson (hence the warning & lockup past 10 waypoints ;) ). upro has such an implementation lying dormant as well (unmaintained, but should still work as a proof of concept), the live code uses a genetic algorithm.

Well, they oughta know what to do with them hogs out there for shure.