by Cobalt » Sat Aug 02, 2014 5:34 pm
I have been modifying the original ctfbot+ code for years to try and improve the botai. My mod is called Tekbotctf+
Nav is THE biggest issue for sure. The CTFBOTS pretty mch use findradius to see what items are in the area, then if visible, are "flung" to them in a straight line. Yea, they can hit corners, but with older Quake they are movetype_step, and I believe it helps them when going around the corners, also if I recall this movetype wont fall off a ledge, rather it will follow along the edge(s) of such an area.
Newer bots like Frik, are nearly 100% cloning actual human players, and the walk movetype will now make them stick on corners as well as fall off ledges. Frikbot pretty much does a decent job of stopping them from falling with tests first.
One thing I am experimenting / trying is using trace_plane_normal on the bot , embedded into a new.touch for the bot. Whenever a .touch is called most engines will set trace_plane_normal that same frame so that you can refer to it in the ents .touch function. Compare the values in that to see if its against a wall , and I guess check if velocity is under a certain min value, and its stuck. Spike had told me a while ago that its not the best way to get trace_plane_normal like that, and I agree the traceline would be better, but so far in my mod is has been ok, and I use DP.
Not sure how good your code is Coburn....hope you put up another demo showing it in use maybe.