AlgorithmsNovember 23, 2005 10:47 am
I wasn’t so happy with the original AI movement that the nomial creature does; it was implemented quickly to check for the correctness of our A* implementation. So, I started adding in features that make the AI movement more “realistic”. Having implemented all that, I wasn’t too happy with the way A* break ties — it doesn’t do it at all. I have experitmented with different method of tie-breaking and other people’s idea, and eventually the tie-breaking problem is partially solved, but I am left with some odd cases where the tie-breaking method doesn’t work. In the end, I have to tweak the A* algorithm even more to deal with these cases. Contrasting the current pathfinding algorithm with the one in the old C++ WoT 0.0.2 gamma 1 release (we also had a 0.0.3, but that was an internal release), the current A* implementation is definitely much more mature and also more fun to play around with.
As far as pathfinding goes, there is very little left to do. Most of the AI basic movement features I have wanted are implemented, and the ones that I have in mind are gonig to get implemented soon. Thanks to Kostatus and our new co-developer, there isn’t so much tension in rolling out releases. So, I am left with a lot of time to pursue new ideas and polish the existing ones.
AI movement is affected by a lot of factors, and (shrotest-)pathfinding is only one of them. So just movement AI alone, there is much left to do. I am going to start implementing AI features that Kostatus and I wish to see in the mid-Feb release (I will temporarily codename it Rockie), in particular the next feature I will implement is sound-driven movement. We don’t have enough infrastructure as yet to implement the other AI I have planned, so I will leave them out for now. I will most likely have to reassign some of the basic attack codes to Kostatus ot implement myself a bit later.
by Atholas