Robo Home | Changes | Preferences | AllPages

What it is

A way of keeping your dodge behaviour so that when an enemy homes in on your current average movement when dodging a bullet, you change it so the old average would yield a miss if the enemy bot uses it. This is an effective way of fooling those bots with long learntime.

How it is done

Simply have your reactive dodge move your bot a fixed distance to the left for example. Always move the same distance for each dodge, until the enemy starts scoring hits which tells you he has homed in on your current dodging behaviour. Then simply souble the distance move per dodge and the enemy bullets will hit behind you. Keep dodging this way until they hit you again, etc etc.

The upper limit of distance will be when the enemy fires at you and you havent slowed down yet from the prevoius dodge, meaning normal linear (or circular) aiming will hit you. Then either do the reverse (start dodging less per dodge) or simply start from the beginning distance (which should be short enough to make the enemy miss still.

This will fool statistical bots most of the time. Bots using SegmentedData will also be fooled by this algorithm simply because every dodge looks the same. When seeing your acceleration it will be no different from before and a bullet fired then will still use the old average. The same is true for when breaking to a stop. By ALMOST doing the same dodge over and over (but with a slight modification that will make your average different) the SegmentedData algorithms wont know that you actually have changed dodge behaviour.

Eventually both algorithms will calculate a new average because of your actual movement and home in on you. Then just switch behaviour again and keep them fooled.

The hard part of this algorithm is:


Depending on your choice for base movement the movement can be a sitting duck for other targeting algorithms. A good and fast patternmatcher could nail you down in seconds. Even normal linear and circular aiming methods might prove themself deadly.

-- Jimpa

Comments, questions and discussions:

This sounds good in theory. I am still convinced that it remains possible to poison a statistical gun. They are only as good as their previous observations and can not predict something they have not seen. The problem with the algorithm as you losely describe it here is that the possiblility exists that there is more than one bullet in the air at a time. The question is how do you make that second shot, which may already be in the air by the time you get to your next destination, have the same result as the first one? Now if you are far enough away, the third shot may already be in the air too. As you can see this gets very hard. If you can remain close enough that there is never more than one shot in the air at a time this has a chance. But dodging your way to that distance, and remaining there against a moving target, all the time trying to stay perpindicular to the target to maximize your dodge, is not trivial to say the least =^>. the closest anyone has admitted to coming to this is Paul Evans in his latest SandboxDT. I think it is on that page where he discusses it. If you do figure this out, I will be insanely jealous as I have burnt a *lot* of midnight oil looking for this -- jim

I must try this. I wonder if it is of such big importance one or three bullets in the air? The hitting guess factors should move over the movement profile anyways I think. Making a good judjment on when to switch is harder though. My bot in development, GloomyDark, has infrastructur in place to gather the necessary intelligence. From there it should just be a matter of EmpiricResearch. Have I said that before! =) -- PEZ

The only megabot movement I've developed does something vaguely like this. It doesn't track fired bullets, however, it does the equivalent of firing virtual bullets at itself. You'll have more luck that way, I believe. No worrying about how many are in the air, just make sure you're following a different pattern than the virtual ones. -- Kuuran

Robo Home | Changes | Preferences | AllPages
Edit text of this page | View other revisions
Last edited September 13, 2003 18:35 EST by Kuuran (diff)