darklab8 / fl-darkstat

Static site generator for Freeancer Discovery community to provide info about game stuff for players
Other
2 stars 2 forks source link

Account graphs routes for minefields and their exclusions #56

Open dd84ai opened 3 hours ago

dd84ai commented 3 hours ago

That will affect heavily how routes are built through kepler at least. To deliver some cardamine from Omicron Alpha to ontario Cochrane Depot for example

Supposedly minefields become quite popular

have minefield as a slow down zone and exclusion paths are invisible trade lanes allowing go cruise speed basically

dd84ai commented 3 hours ago

To implement it you need to find out for specific direct line routes When minefield begins and ends on its line. Basically math for finding when direct line route intersersects a minefield

May be other approach exists smth with abusing too many points placement, but it will be performance not efficient

dd84ai commented 2 hours ago

basically question to answer How to find for some lets say direct route between two jump holes, that a minefield will intersect it for a specific its range We can assume having three dimensional coordinates for two jump holes and all the information in ini configs about mine fields

since we operate with graphs, it will be fine to treat minefield first as it has no exclusions i think. And then add as separate graph edges exclusions into it

Dijkstra graph resolver will be able to switch to prefer exclusion path on its own. We just need to break direct path flight correctly by finding out it is part of a minefield

dd84ai commented 2 hours ago

May be it is actually possible to do very fast lets assume that a direct flight path is made out of many contained ponits with some small/big enough step in between them we need just to check for each point, if it is included into minefield and say yes or no after that for optimization of calculations, we join back points of same value into direct path route made out of only points in amount of 2+2*amount of encountered minefields in a direct flight paths then we lay on our speed/normal flight through exclusion paths and my parallel dijkstra will be able to resolve it rather fast

Then the problem level is minimized only to a question, how for specific point to be checked if it is inside a minefield. which looks already rather managable to do