Mirage
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.