[Home]DiveProtection

Robo Home | Changes | Preferences | AllPages

When WallSmoothing it can be important to make sure you don't dive into simple fire at close ranges. This is dive-protection. I have it in all my WallSmoothing bots some of which are Aristocles, Tityus, Pugilist and CassiusClay. Though CC is the only one trying to do this with some finess. -- PEZ

Rumour has it that some of the WaveSurfer's don't need dive-protection. Pulsar and Jim comes to mind. Gives us some details dudes! -- PEZ

What I do in CassiusClay is to always evaluate surfing_danger for three options (forward/stop/reverse). I also give the options for forward and reverse a dive_danger which, when it kicks in, is always much higher than the surfing_danger values. This has the effect that when forward or reverse are dagerous from a diving point of view then the bot is left with the two other movement options. To avoid getting stuck in a corner with an enemy close I also have a case for when both forward and reverse diving_danger is flagged for. Then the bot chooses the option wit the lowest diving danger. (That, is, it doesn't even consider the stop option.) Sounds complicated? Then it's just me not succeeding in explaining it. It really is quite simple... Ask me and I'll try to explain it again. -- PEZ


Chat

Well, I've improved my surfing. But I still have a nasty problem with diving into the bot. Cost me 5 rounds against bot A. Ick. -- Alcatraz

Do you have any mechanism to avoid very short distances? If no, i recomend trying one... In SS i had no choice but implementing a if (dist < 150) then Run-Like-Hell-Away-From-Enemy. WaveSurfing becomes pretty useless in very short distances, actually i think that 200 distance is the least that you should try to stay... -- Axe

There is code to tell it not to turn forward into a bot, but it still tries to surf and that can screw it up. Guess I should tell it just to ignore the wave surfing until at a safe distance. -- Alcatraz

Thats what i do... -- Axe

Anyone following along the windles of my above explanation should understand that that's not what I do. Also. If i understand how SilverSurfer does it, that's not what it does either. But clearly Axe should know this better than I do. =) -- PEZ

Cyanide is supposed to do it your way, PEZ, but apparently doesn't. Though thinking about that, I realize that I only increase the dive danger if it is very near the walls, because that's when it's usually a problem. But it sometimes dives into the stationary bot when it is not right on the wall, but is instead coming out of a corner. -- Alcatraz

I think we might speak about two different things here. One is dive-protection and the other is close-battle-evasion. I think maybe Axe is suggesting that when you're very close then skip surfing and just run! I still don't do that. As long as there are waves to surf, CC will surf. On the matter of dive-protection; If the WallSmoothing will bring CC closer than 260 then CC will only allow very little smoothing before raising that danger-flag. And the diving_danger is set to amount_of_smoothing_asked_for * high_number. That way, if cornered, CC wikk still try to slip out using the widest escape door. -- PEZ

I've mentioned this to others, and possibly elsewhere on the wiki, but it can't hurt to mention it here. My form of dive protection in both Dookious and Komarious is very, very simple. My WaveSurfing algorithm in both is based on the one that PEZ uses in CassiusClay, evaluating forward and reverse (and in Dookious, stop) positions and taking the lowest danger one. Well, in that prediction, I make note of the distance I will be from the wave source when that wave hits, given my WallSmoothing. I then multiply the danger for that movement option by (currentDistance / predictedDistance) ^ somePower. In Dookious, I vary that power based on various things; in Komarious, it's 4. I kind of like it, it seems elegant and well rounded, it's also part of my general distancing, and I have certainly found it to be (or forcefully tweaked it to be? =)) quite effective. -- Voidious

What I do in Druss is check what the maximum danger bin my BotWidth? covers at that distance is. Thus, if the predicted position is too close, it will (hopefully) cover a more dangerous bin (among the many it covers), and avoid that position. I also set the 'default offset' to vary depending on distance. It's quite funny to watch it doing almost straight towards-away (against a wall) surfing against DoctorBob, with DoctorBob still getting a 0 hitrate. Against HawkOnFire it just does big orbits, until it gets pinned, and then it backs up. -- Skilgannon


Robo Home | Changes | Preferences | AllPages
Edit text of this page | View other revisions
Last edited August 19, 2007 17:30 EST by Voidious (diff)
Search: