[Pogamut-list] SafeRunToLocation failing when the sockets are under heavy burden?

deus pogamut-forum at artemis.ms.mff.cuni.cz
Tue Oct 27 22:16:29 CET 2009


SafeRunToLocation failing when the sockets are under heavy burden?

Author: deus

Hey gang, 

We're Master students of ITU of Copenhagen, trying to develop our Unreal Bots, but we ran into an interesting, unexpected, and quite frustrating problem:

When doing a simple saferuntolocation (which works flawlessly if used on its own) we get unexpected results (like having the bot run around between two navpoints for a while before going forward, or in extreme cases hitting a wall and just staying there) when we do a lot of computationally expensive things in the doLogic - and more importantly, things that involve other socket-accessing methods such as getMap, getMemory etc etc. We had to dumb down our code to test what the problem was, and it turned out the following result:
* If we access all the spawn points for ammo/health/armor/weapons of the map once, and calculate their distance to the player, then the bot can saferuntolocation quite well (although there might be some slight nervousness at some points).
* If we call the same method as above in a loop 3-4 times (just for stress testing), calling saferuntolocation after this loop will result in a bot that often just runs back and forth between navpoints quite far from its goal.
* If we call the same function as above in a loop about 10 times, there is a very big chance that the bot, while doing saferuntolocation, will hit a wall and never be able to move away from it.

Is there any solution to this? Or aren't we getting something in the Pogamut architecture or the Pogamut-GameBots connections? It would be a huge shame if there is no solution, since the stress we applied for testing is nothing compared to our plans for the final Unreal Bot implementation! :)





More information about the Pogamut-list mailing list