Movement

From Robowiki
Revision as of 18:50, 10 September 2011 by Voidious (talk | contribs) (main article for Movement, pulled/revised from Category:Movement)
Jump to navigation Jump to search

In Robocode, getting hit by bullets increases your opponent's score and energy, decreases your energy, and decreases your chances of survival. For info about bullet damage and scoring, see Robocode/Game Physics and Robocode/Scoring. For info about different movement techniques, see Category:Movement.

Melee and 1v1 are the most explored Robocode rule sets, so most movement algorithms are designed for one of them. Other rule sets, like Teams, Twin Duel, Droids, and Virtual Combat add various other elements and borrow from Melee and 1v1 movement styles.

Melee

Besides moving unpredictably, it's also very important in Melee to choose a stategically beneficial location. For instance, not being closest to any other bot means that you will likely not be targeted by other bots - this allows you to easily collect survival points and also rack up bullet damage against bots that are not paying attention to you, making them easier targets. Corners tend to be coveted positions in a Melee battle.

You cannot scan the entire battle field every tick in Melee, and Robocode's bullet hit events only fire for bullets that you fire or that hit you, so you have access to a far lower percentage of the total information in the battle. This makes it difficult or impossible to employ precise forms of bullet dodging in Melee. The emphasis, then, is on strategy and moving randomly with respect to the bots most likely to target you.

1v1

A primary differentiator of movements at the highest level of 1v1 is accurate bullet dodging. There are still strategic choices, like distancing, attack angle control, dive protection, and staying out of corners (which can limit your Maximum Escape Angle). But distancing is reciprocal, many attack angle control schemes perform similarly, and the benefit of staying far away may be offset by getting yourself cornered.

Between gathering scans of the enemy every tick and receiving bullet hit events for every bullet that hits you or the enemy, you have a very high amount of information about the battle. About the only thing you are unaware of is the location of enemy bullets that don't/haven't yet hit you or one of your bullets. Wave Surfing movements with Precise Prediction put all of this together to dodge enemy bullets effectively. This is particularly potent against simple targeters, and is also the most effective form of movement against nearly every other targeting algorithm.

For 1v1 in lower weight classes, like MicroBots and NanoBots, there is not enough room to track all of the data needed for wave surfing. Still, Stop And Go movements do a great job of dodging simple targeters like Head-On Targeting, and well tuned Random Movement can make your movement fairly unpredictable even to powerful guns by creating a flat movement profile.