Robo Home | Changes | Preferences | AllPages

I think Paul Evan's or iiley better write this story.

See also EnemyWave/MovementAdaption

-- PEZ

come on. someone write something.--andrew

I concur. -- Tango

Adaptive movement: using the enemy's hit rate as input to change your own movement in some way.

  1. A way of doing it is choosing from a set of possible movements by measuring the relative success of each one of them in dodging enemy fire. PrairieWolf and Swiffer are good examples of this kind of AdaptiveMovement.
  2. Another way of doing it is by slightly changing the parameters that govern your movement to counter specific "spikes" in the enemies shooting profile. It requires that you keep a statistic of the enemy's firing angles/guessFactors and know exactly what the parameter change will make to your movement. SandboxDT from 2.01 to 2.41 is, afaik, the best example of this.
  3. The latest evolution in adaptive movement is the one where the sole input of your movement is the recent enemy firing history. You have to be able to precisely control your own movement profile, as percieved by the enemy, and change it at will. It's, imho, the "holy grail" of robocoding, a way to dodge almost any type of gun, and the only way you can really "Dodge This". :)

-- ABC

is it necessary to use enemy figure out what guess factor they hit you with?--andrew

It is necessary to do the two last tings in the list. At a minimum you need to know when you are hit at GF1 so you can try balance it, like Paolo does. But I do not really agree that what Swiffer does is "simple". -- PEZ

Agreed, it's actually very hard to do it right. The closest I ever got to MultiMode was a random choice at the begining of each round... -- ABC

What I am currently implementing is a system of 5 to ten RandomMovement methods. Mostly I have been taking very similar algorithms from a variety of open source bots, and having my movement selector change between the algorithms every time I am hit and then a few random times. This way while my movement possesses the same general concept, it will hopefully mess with most targeting attempts. -- Jokester

Hopefully the algorithms will have different guess gactor peaks, otherwise this won't do a whole lot of good against the good GF guns. -- Alcatraz

Well the goal of this is to have the movements utilize complimentary peaks. That way, with a lot of tweaking, I can achieve an overall flat profile, but provide the GF guns with peaks. As soon as the gun gets tuned to the peaks of one movement it will switch to a movement that very rarely is hit at those factors. This could either work better than standard flattening, or be completely trounced by most guns. -- Jokester

Sounds like something I tried to do some time back. I called it 'bait and switch' and included many highly flawed movements just to mess with the guns, but I never made it work. So good luck to you : ) -- Kuuran

You know, there's something to just trying things that have been tried and failed at - I wonder if time segmentation would have been simply given up on after Jamougha said he tried it with no success if I didn't chime in and say I'd also experimented with it and only been successful with a smaller number of segments.

About switching movements, have either of you added in a CoolMovement-based one? That should have a very unique flaw as far as complimentary peaks. It still may not be helpful against the good GF guns, but who knows? -- Kawigi

I suspect people would have kept trying to segment on time, it's something that, to me at least, seems a very logical possibility for segmenting. Also, I've always wondered about the difference between CoolMovement and straight BulletDodging?. In the one you dodge when the bullet is fired, in the other you dodge either before this occurs, which is still a pattern, or just randomly, which really isn't cool after all. -- Alcatraz

I agree, Kawigi. That idea in particular because I think I could have made it work if I wasn't attracted to working on nanos. :p And I tried this long before CoolMovement, so the answer for me is no.

On the subject of segments: One other thing I've never made a bot big enough for, but this I have had successes with, is dividing the battlefield up into 9 boxes and segmenting based on which box the opponent is in. The corner boxes were especially handy, and the only walls segment you need to go with it is a '0 if not approaching, 1 if approaching' type segment. It also messes with AdaptiveMovement by arbitrarily switching between valid peaks ;) Unfortunately for pure anti-adaptation purposes I never had too much luck in my attempt to convert it to a segment that just counts 0 1 2 0 1 2 ... incrementing one in the sequence on every bullet fire (maybe I should've only counted bullet hits).

@Alcatraz: It all depends on how you dodge. WaveSurfing is just a form of straight bullet dodging (dodge where they went last time), but latching onto a pattern in it isn't terribly helpful, since it is Borg-like an adapts. Tracking gun cool is just another handy element in making your dodging decisions, what you do with it can vary quite a bit. As I understand it some WaveSurfers track gun heat on their opponents just to verify bullets, for example. -- Kuuran

CoolMovement isn't really just bullet dodging - it's changing directions when the opponent is firing after having just barely changed directions earlier (when the enemy's gun is "cooling"). I really should publish that cool-movement nano sometime or something, it can be the official bot with a negative spike in the rumble. -- Kawigi

Robo Home | Changes | Preferences | AllPages
Edit text of this page | View other revisions
Last edited May 4, 2006 23:41 EST by GrubbmGait (diff)