Thursday, March 30, 2017
We are excited to announce that progress updates on Nox Archaist are now available on Twitter!
In addition to our regular blog posts you can check out new Nox Archaist artwork, game features, and more on the @6502Workshop Twitter feed.
If you have any suggestions on Twitter content you'd like to see, or suggestions anything in Nox Archaist, please feel free to contact us on Twitter.
Thanks for your support of the Nox Archaist project!
Mark & Mike
Sunday, March 19, 2017
In an earlier blog post about the A* based algorithm we developed in Nox Archaist for NPC pathfinding, we challenged readers to solve the following puzzle and promised to publish the solution.
How does Nox Archaist enable NPCs to navigate around dynamic obstacles like the player and other NPCs even though paths are calculated in advance rather than every time the NPC moves?
For NPCs in transition from one map location to another, the Nox Archaist movement manager will select a move from the precalculated Nox A* path only if the path coordinates are not blocked. If the path coordinates are blocked, then the movement manager identifies the next unblocked path coordinate and uses a simple flocking algorithm to select the next move. The next unblocked path coordinate is the flocking point.
The flocking algorithm determines the direction of the flocking point relative to the NPC, without considering obstacles. For example, if the flocking point is to the west, then the NPC will move west. If the flocking point is to the northwest, then the NPC will move either north or west, determined by a random number. If the move is blocked, then the NPC moves in a random direction and will try again next turn.
Since flocking algorithms are very simple, it is certainly possible for a NPC to wander off and not find its way back to the Nox A* path. We’ve found that this is unlikely because single tile obstacles like the player or another NPC are pretty easy to navigate around. In the rare cases where an NPC does get a bit lost, we expect this behavior will add some life to the game and keep the player on their toes.