Wave Surfing

From RoboWiki
Jump to: navigation, search
Youtube has a video of Wave Surfing in action: click here to watch

A form of precise bullet dodging movement used primarily in 1v1. A Wave is a mechanic used to represent all possible locations of a bullet. Through observation of waves and bullets, one can try to project the relative dangers of each area of a wave in the air -- i.e., the likelihood that the enemy fired at various angles. (Note that Robocode bots cannot see bullets in the air.)

Contents

History

ABC was the first to implement true Wave Surfing in a Robocode bot when he added it to Shadow in mid-2004. As of April, 2010, the top 40 duelists in the RoboRumble use a form of Wave Surfing.

How it works

  • Detect an energy drop to know that a bullet was fired. Create a matching Wave.
  • Gather data from onHitByBullet or onBulletHitBullet, always matching to the correct Wave, to learn what firing angles the enemy gun uses in different situations.
  • For the nearest bullet(s) in the air, use precise prediction to deduce the areas of the wave(s) your bot could reach.
  • Try to move to the safest reachable spot on each wave.

Styles of surfing

  • True Surfing - Decide each tick whether to move forward, backward, or stop. By far the most common form of wave surfing, it is used by many bots including BasicSurfer, Diamond, and Shadow.
  • GoTo Surfing - Calculate the safest spot on the nearest wave(s) and move there directly. DrussGT uses this method.
  • Melee Surfing - Surfing waves fired by multiple bots simultaneously. Neuromancer uses this method.

See also

Personal tools