O boi I feel smart. I was working on my pathfinding algorithm, and was thinking about the problemo of having a zombie move comfortably along a found path, because the thing is, is that the AI mesh represents ALL theoretically possible places an AI can be, which means it almost touches the walls. But if I'm pathfinding along the nodes that are right by the wall, then the zombie will just be rubbing against the wall the whole time, trying to follow closer than his radius.
So I then started to think real hard about how I could possible displace path vertices the correct way so that that didn't happen. Then I figured it out. I just smooth the path, so that there should never be more than 2 path vertices that have a direct line between them. Then afterwards you average each vertices connecting vectors, and subtract that from the original vertice's position.
Hard to understand, but I can draw it up if anyone's interested.
Also, I green-threaded the pathfinding module, so it should be able to handle all this without lag, just spaced over several frames (which is barely noticeable...even if it takes a second, the end result will be good enough for my needs)
Oh, and the pathfinder never modifies path nodes anymore, it just uses Dictionaries to store temp values of the heuristic, G, and parent node.
Next step I'm doing is putting in shooting and using items and lighting...3 last tasks before level design and playing around with different AI setups. Hell, you guys could even have a go at designing some AI for it, since it's a behaviour class that acts on it's own etc. if anyone wants to try!