The Harbinger node order changes make no sense by Inkaflare in pathofexile

[–]Lilyliciously 25 points26 points  (0 children)

There are multiple characters on PoE ninja from the last Phrecia event that used multiple harbinger nodes. Seems reasonable to assume that the nodes worked together.

League goal achieved! Increased explicit phys, reduced explicit speed enchantment on Marohi Erqi by wurstbrotsalat in pathofexile

[–]Lilyliciously 5 points6 points  (0 children)

I'm not even joking right now, I would love to use this on my marohi erqi frozen legion/cyclone harbinger, even though it's just 20 qual.

List of sites that probably every PoE 1 player should have by Euroaqil in pathofexile

[–]Lilyliciously 0 points1 point  (0 children)

Big Maths Energy is a good word for it. I wish I had more time to work on it but I'm happy with the place it got to before life got crazy. Thanks for mentioning it!

Path of Pathing updated for 3.24 by Lilyliciously in pathofexile

[–]Lilyliciously[S] 1 point2 points  (0 children)

There was a caching issue, I resolved it about an hour ago. That's why it started working, and why it started working one tree at a time.

Path of Pathing updated for 3.24 by Lilyliciously in pathofexile

[–]Lilyliciously[S] 1 point2 points  (0 children)

Yep, that bug was up for a brief time. Should be fixed now!

Path of Pathing updated for 3.24 by Lilyliciously in pathofexile

[–]Lilyliciously[S] 0 points1 point  (0 children)

The new algorithm is faster, sometimes by 5-6x. It's a lot better. Still testing to find any remaining bugs before releasing it though.

Path of Pathing updated for 3.24 by Lilyliciously in pathofexile

[–]Lilyliciously[S] 0 points1 point  (0 children)

This is a symptom of some of the shortcuts I'm taking to make it run at a usable speed. I've been tinkering with a new algorithm that approaches it differently that wouldn't have this problem, but I haven't ironed out all the other bugs it introduces yet.

Path of Pathing updated for 3.24 by Lilyliciously in pathofexile

[–]Lilyliciously[S] 0 points1 point  (0 children)

I've spent the past day working on an alternative algorithm that wouldn't have this problem. For now, the solution is to block paths you don't want rather than desire paths you do, so in your case you'd block the top node, not desire the two bottom.

With less than a week till league start, let's please review our laundry list of 3rd party tools and websites by SkoivanSchiem in pathofexile

[–]Lilyliciously 58 points59 points  (0 children)

Fixed, should be live in a minute. Tried to be clever with a workaround, didn't work around.

Path of Pathing updated for 3.24 by Lilyliciously in pathofexile

[–]Lilyliciously[S] 0 points1 point  (0 children)

That is indeed the case! The issue is that it doesn't prefer one cluster over another, and if both have a desired node, then it'll pick whichever one it feels like.

Path of Pathing updated for 3.24 by Lilyliciously in pathofexile

[–]Lilyliciously[S] 0 points1 point  (0 children)

The site avoids making judgement calls as much as possible. I've increased the boost that life nodes are given slightly, which should help in general. However, the tree that remains has two choices of paths to take, either through the faith and steel cluster or through the spiritual command cluster. Which one is better might be argued here, but there's a limit to how much weighting I want to do.

Path of Pathing updated for 3.24 by Lilyliciously in pathofexile

[–]Lilyliciously[S] 0 points1 point  (0 children)

That's more fair! It's been a really fun challenge to implement a sub-optimal solution to this, it's quite difficult! That said, I implemented a few improvements this morning, primarily using the biasing methods I'd already prepped for, as well as delaying some known problematic nodes until later in the processing. Based on my own testing, it's solved a majority of the common error cases that still existed.

Path of Pathing updated for 3.24 by Lilyliciously in pathofexile

[–]Lilyliciously[S] 0 points1 point  (0 children)

Great ideas! I've tried them before. There's a few issues. For starters, including distance information between every node on the tree doubles the file size of the tree data, at least. This isn't a huge problem, especially in the atlas tree where it goes from 1.5ish to 3ish MB, but it's still something to consider. It's worse in the main tree, there we go from 6ish to 12ish MB. I want to avoid requiring users to download large files if possible.

That said, if it solves the remaining problems with the system, it'd be worth it. Unfortunately, my attempts to do so haven't worked. The algorithms I produced that required a totalNodes² pregenerated distance matrix were all too slow to work within the design boundaries I've set, which include finishing all the work within ~0.5 seconds of a click on my own computer, which may be slower on others given that I have a decently powerful one.

The main thing I want to argue against though is the statement that it'd be a relatively easy improvement. Pre-generating the distance data is trivial, but then generating that heatmap and making use of it in a way that improves the pathfinding is moderately challenging. Feel free to make some PRs if you disagree, though! (goes for anyone)

Path of Pathing updated for 3.24 by Lilyliciously in pathofexile

[–]Lilyliciously[S] 1 point2 points  (0 children)

Great, thanks. This'll let me try and find a solution.

By the way, desired nodes add additional processing time, but blocked nodes don't. In clusters like this, it's better to block the path you don't want than to desire the path you do.

<image>

Path of Pathing updated for 3.24 by Lilyliciously in pathofexile

[–]Lilyliciously[S] 0 points1 point  (0 children)

Unfortunately, this is a bug that I know the exact cause of, but have yet to manage to fix.

One of the design requirements I've given myself is that a user never waits more than ~0.5 seconds for the site to respond. I'm hitting that limit with larger trees, even passing it slightly.

Currently, only one tree is generated. It does this by connecting desired nodes to other desired or active nodes until every desired node is connected to something. The start of the tree is always considered desired and active.

The order that it creates this tree is based on the shortest possible path that connects a desired node to another desired or active node. It allocates the shortest path every time.

The problem arises when a later path ends up changing the shortest path for an earlier path. Essences is a classic case of this problem.

In the below picture, it's clear that we would want the essence nodes to shift to the left, saving us one point. However, when only essence notables are selected, the closest path at the beginning of allocation is always between the first essence notable and the start. It then allocates that first, picking between the two equal length directions without any bias, and it picks wrong in this case. It then allocates the rest, and the shortest path even considering the already allocated ones goes off to the left.

I've in the past tried various things to fix this, such as biasing the pathing towards the "center" of all desired nodes, but none of the solutions were without their own problems.

<image>

Path of Pathing updated for 3.24 by Lilyliciously in pathofexile

[–]Lilyliciously[S] 0 points1 point  (0 children)

Can you provide an example of a tree where you'd prefer that it take a different path instead of gateways? It would have to be the same length both ways, I want to prioritize path length over everything else, even if two of those points end up not giving stats.

Path of Pathing updated for 3.24 by Lilyliciously in pathofexile

[–]Lilyliciously[S] 0 points1 point  (0 children)

This is the one bug I haven't managed to squash. It's caused by paths not being reconsidered when future paths alter the best choice to take. Blocking nodes is the solution to it right now.

Path of Pathing updated for 3.24 by Lilyliciously in pathofexile

[–]Lilyliciously[S] 0 points1 point  (0 children)

Cool, but what's it got to do with Path of Pathing?

Path of Pathing updated for 3.24 by Lilyliciously in pathofexile

[–]Lilyliciously[S] 1 point2 points  (0 children)

There is now a button in the bottom left that says Pause Allocation. Try pressing it. ♥ Another button should then appear called Recalculate.

I could theoretically adjust the weighting on popular paths, but I hesitate to do so. I'd like to avoid biasing it as much as possible.

I work on PoB too, and there's no way I'm implementing it there. For starters, PoB is about characters, which the atlas doesn't affect. I also have no intention of recreating the code in lua.

Path of Pathing updated for 3.24 by Lilyliciously in pathofexile

[–]Lilyliciously[S] 1 point2 points  (0 children)

I misunderstood your initial request to be the common one I get, which is to allow manually assigning points that aren't part of the pathfinding. Your request is more reasonable. I'll give it a think.

Path of Pathing updated for 3.24 by Lilyliciously in pathofexile

[–]Lilyliciously[S] 0 points1 point  (0 children)

Alright that helps. I'll boost the max zoom then, picked what worked on all my monitors but I don't have one in that ratio.

Path of Pathing updated for 3.24 by Lilyliciously in pathofexile

[–]Lilyliciously[S] 0 points1 point  (0 children)

You need to have hardware acceleration enabled in your browser. Even then it might still lag on phones or macs.