I did some bonus dev last night turning the astar query into a coroutine. When the behavior tree node wants to find a path, it runs the function to find a path, but the return value is a code object rather than a path. On subsequent runs of that node, it will execute the function a little bit further. I can adjust how many iterations of the astar loop are executed per npc per frame; a further optimization would be to have those executions happen centrally in a way that I can have the number of iterations a fixed amount no matter how many npcs are in a scene.
In this way, the framerate will never be affected by pathfinding, higher numbers of npcs will be able to be supported. As population grows, the npcs will be slower to make decisions to start moving, but the gameplay will stay smooth.
This is probably not as useful as hierarchy will be but it was pretty easy to implement.
The orc is coming along. I'm just kind of randomly adding different things he can do. The latest is that he can glide on his shield like Olaf from The Lost Vikings.
I think this is going to turn into a game but I'm not sure exactly what it will look like. Definitely a platformer of some sort but I'm not sure if the focus will be on action or puzzles or something in between.