I'm a third year maths student, and for my dissertation I decided to write a program that will calculate optimal trade circuits in Freelancer based on what planets and systems you have available, and what factions you're friendly with. This turns out to be a very interesting and complex algorithmic problem. The trouble is data entry.
I need shortest paths between every pair of bases in the game, to accurately calculate profit to time ratios for various routes. I've finished data entry for VanillaFL, but I did it by hand, using the star maps to eyeball distances between neighbouring bases then running a shortest path algorithm to get the rest. The process of manual data entry was tedious in the extreme, and I really don't want to go through it again.
The trouble is, while looking for the starmaps to work out the distances, I stumbled across the Discovery mod. The active userbase here means that my program will be a lot more useful and widely used if I adapt it for the new systems, trade routes, and suchlike in the mod. But I'm blowed if I'm going to go through and do it all by hand.
The game can already calculate shortest paths to fly from one base to another, so the functionality I need must be in the data files somewhere. The trouble is, I'm a complete newbie to modding, and I have no idea how to extract it. So, if anyone could tell me how to get the following information in a usefully parsable form, it would be very helpful.
Things I need to add Discovery functionality:
Time of shortest paths between every pair of bases. Units don't matter, as long as they're consistent, but I would ideally like the option to choose whether or not to use trade lanes in the calculations. Also, I want to be able to route through jump holes.
Commodity prices at every base, and which bases sell what
For every base, a unique ID, the system it's in, and the faction it belongs to
Preferably, information on what commodities are contraband in what places, but that won't make it into the first version
Other things that might be useful for later versions are things like ownership of jump hioles and gates, to avoid jumping into hostile territory, and some way of calculating your probability of being attacked by a given faction in a given part of space so you can try and avoid bandits. I haven't really thought much yet about how I'd implement those, though, so they're lower priority.
Hopefully this can all be pulled out of the data files somehow. If so, over the next year and a half I'll be developing the program for Vanilla and Discovery in tandem, and I'll let you all know how it goes!