Mirage

From Robowiki
Jump to navigation Jump to search
Sub-pages:
Version History
Mirage
Author(s) Kev
Extends AdvancedRobot
Targeting Play It Forward
Movement Minimum Risk Movement
Code License RWPCL

Background Information

What's special about it?
It fits Multiple Choice Play It Forward targeting and Head-On Targeting/Linear Targeting avoidance in a minibot.
How competitive is it?
It is the strongest melee minibot.

Strategy

How does it move?
Minimum Risk Movement. It uses a pretty standard risk function, except it also attempts to dodge head-on/linear targeters. Every tick, it creates virtual bullets represented as Line2D.Doubles from nearby opponents. It then uses Line2D.ptLineDistance from relevant bullets in its risk function.
How does it fire?
Mirage uses an interesting aiming system that essentially builds a Markov chain for each opponent. Specifically, it builds a table that maps from the opponent’s velocity/deltaHeading/acceleration to a list of their observed velocities/deltaHeadings next tick. It can play forward a possible movement from the opponent by repeatedly sampling a random next tick from the list and looking up the next list. An advantage of this method is that it doesn’t need to interpolate between missed scans (which is hard to fit in a minibot) as it only fills in the table on consecutive scans when the opponent’s next tick is known.
What does it save between rounds and matches?
Aiming data between rounds, nothing between matches.

Additional Information

Where did you get the name?
It is deceptively hard to hit!
Can I use your code?
Sure, it's released under the terms of the RWPCL.
What's next for your robot?
I would love to get it into the top 10, but competing against melee surfers as a minibot is hard.
What other robot(s) is it based on?
The movement (minus the bullet dodging) is inspired by the amazing Wallaby, which previously was the strongest melee bot in the mini category despite being a MicroBot.