Hey Aron, looks like you’ve made a great package here. I’ve read much of the documentation and watched some videos, but I still have a couple questions about my use case before I feel comfortable buying.
For context, I am building a game with essentially identical mechanics to Fallout 4 settlement building:
This means placing arbitrary geometry to construct buildings that NPCs then navigate around and interact with in various ways.
Here are my questions:
1. Can I dynamically recalculate my graph with no main thread stutter?
This page:
https://arongranberg.com/astar/documentation/4_1_11_05f3b7d8/graphupdates.html
says:
You can also recalculate graphs asynchronously (only available in the pro version). This does not guarantee a good frame rate, but you can at least show a loading screen.
Showing a loading screen after the placement of each building part isn’t going to work, it has to be seamless, ie. on a background thread.
Maybe also relevant: it’s possible for the player to click rapidly, eg. if they are placing several floor pieces in succession. Ideally I could detect a recalc in progress and cancel it/restart it if the player lays down parts quickly. Possible?
2. Can new geometry block navigation before it’s baked into the mesh?
Given that it doesn’t stutter the game, as described above, the recalc doesn’t have to be fast at all: when placing a new floor, for example, it’s not important that NPCs be able to navigate onto it right away, they can wait a few seconds, however they must at least avoid the geometry right away.
Eg. if they are already walking a path that went through the area that I just placed a block in, it’ll have to avoid that obstacle even before it gets baked into the walkability graph.
I assume this is easy, but it would be a deal breaker if it were somehow not possible.
3. How smooth will NPC interactions with moveable parts be? (Eg. Elevators, Ziplines, Conveyors)
This is less of a dealbreaker issue, and more just trying to understand how deep in the weeds I’m getting with this.
I’ve seen a couple discussions / videos from past years (both from you and others) with elevators, and they all without fail mention being “hacky”, so I’m wondering if something cleaner has been built in the mean time.
This is a scenario where the elevators are realistic in the sense that an agent would approach them, hit the button, wait for the platform to arrive and doors to open, walk onto the platform, ride the platform, wait for the doors to open, then continue their path on the new floor. I’m sure I can get a script working to do all this, I’m just checking if there is already a clean way built to handle this?
4. What should I be asking?
Numbers 1 and 2 are the only potential deal breakers I know of–the rest of the features cover my scenarios. Given the context you have, can you think of something else I should be aware before buying?
Thanks a lot for your help!