Here I'm doing the fixes to Wunderwaffe.
Cool! I'm glad you're working on it.
You're right I had to remove the FogRemover stuff. I also had to change the picking scheme a lot, since of course picking works completely differently.
Both of these changes had to be made when moving from TheAIGames framework to WarLight's. In TheAIGames, it told you where your opponent started, so it was reasonable for a bot to be able to guess and get a pretty good idea of what the map looked like behind the fog. Wunderwaffe took advantage of this, rightfully so, and kept a "fogless" map. When I went to port it to WarLight, I couldn't think of a way to maintain the same feature so I ended up removing it.
Both Cowzow and Wunderwaffe are being used in ways they weren't designed, so it's understandable that their behavior may not be ideal for the new world they're being thrown into.
It's also entirely possible I broke something when porting them over. I also fixed a few bugs that I found in Wunderwaffe's java version (let me know if you're interested in what I found).
Also, I was profiling other bots so I decided to profile Wunderwaffe to see if there was anything that could be improved. I found it was spending 40% of its time in the BotBonus.DistanceFrom function. That's a lot!
I looked over DistanceFrom but I didn't see any easy way to optimize it, so I looked at how it was being called:
var distanceFromUs = bonus.DistanceFrom(...);
if (distanceFromUs > 2)
DistanceFrom was spending a lot of time calculating the exact distance across the entire map, but all the caller really cared about is "is the distance greater than two?". So I was able to make an easy fix: DistanceFrom now takes a "max" integer, and if it exceeds the max, then it stops searching. Then the caller just passes a max of 3.
I just checked this in. I recommend applying it if you want to see a drastic speed increase.