Difference between revisions of "Wave Surfing"
Jump to navigation
Jump to search
m (Minor edit.) |
|||
(13 intermediate revisions by 9 users not shown) | |||
Line 1: | Line 1: | ||
− | A movement | + | {{Youtube|dqHmp_kMz-U}} |
+ | |||
+ | A form of precise bullet dodging movement used primarily in [[One on One|1v1]]. A [[Waves|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.) | ||
+ | |||
+ | == History == | ||
+ | |||
+ | [[User:ABC|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|energy drop]] to know that a bullet was fired. Create a matching Wave. | ||
+ | * Gather data from <code>onHitByBullet</code> or <code>onBulletHitBullet</code>, 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|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|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|GoTo Surfing]] - Calculate the safest spot on the nearest wave(s) and move there directly. [[DrussGT]] uses this method. | ||
+ | * [[/Melee|Melee Surfing]] - Surfing waves fired by multiple bots simultaneously. [[Neuromancer]] uses this method. | ||
==See also== | ==See also== | ||
+ | * [[Wave Surfing Tutorial]] | ||
* [[Waves]] | * [[Waves]] | ||
+ | * [[Energy Drop]] | ||
+ | * [[Precise Prediction]] | ||
+ | * [[Flattener]] | ||
+ | * [[Gun Heat Waves]] | ||
+ | |||
+ | [[Category:Movement]] |
Latest revision as of 18:19, 31 December 2012
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.)
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
oronBulletHitBullet
, 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.