Laser Targeting

From Robowiki
Revision as of 03:37, 27 August 2011 by Voidious (talk | contribs) (outdated)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
The ideas presented on this page may be considered outdated. For a more modern system that builds on these same concepts, see: Waves or Visit Count Stats

A form of statistical targeting that gathers firing angles that would hit the enemy and selects one randomly at fire time. The result is that the angles that hit most often are also fired at most often. This method was designed by tobe and first used in Neptune.

Creator's description

Laser targeting predates the RoboWiki by at least a year, but the first formal description of it was posted by tobe on the RoboWiki in 2003:

The name or this method of Targeting is based on the idea that you point a laser sight at the enemy. To hit with the bullet you need to adjust the sight for the enemy's expected movement.

It is very similar to using Virtual Bullets but less memory-consuming. Basically, you store where you are and where the enemy is at a certain time, then you mark a desired time in the future for an observation of the enemy, usually the time it would take for a bullet to reach the enemy. What you get is an observation of the enemy's actual change in position relative to the straight aim.

Usually I have used this in a way similar to GuessFactor Targeting, select one of the observations at random and interpolate/extrapolate it to get a guess factor. Random selection among the observations should be as good as using the "most usual" observation and in addition, it solves the problem of what to do when several observations are equally usual. See also RandomTargeting.

Laser Targeting evolved from keeping a log of everything every turn and is well-suited to melee combat because you do not need to scan the enemy every turn.

Bots I built with LaserTargeting include Neptune, Pluto and the MiniBot CherryBlossom.

In a way, Laser Targeting was partly responsible for starting off the MiniBot Challenge because I realized that the ugly code I originally wrote for Neptune could be written much more compactly and beautifully.

See also