Numbat

From Robowiki
Revision as of 12:20, 11 August 2012 by Wompi (talk | contribs) (update)
Jump to navigation Jump to search
Sub-pages:
Version History
Numbat
Author(s) Wompi
Extends AdvancedRobot
Targeting Single Tick Pattern Matcher
Movement Minimum Risk
Antigrav
Oscillating
Released August 2012
Current Version 1.8
Code License RWPCL
Download

Background Information

What's special about it?

This bot is a try to make Single Tick Pattern Matcher competitive for the melee rumble and therefor it supports this kind of gun system. The radar is a little uncommon within the melee rumble because it has a very high lock rate while still having a good overall field sight.

How competitive is it?
MeleeRumble ‒ APS: 66.74% (9th), PL: 340-7 (8th), Survival: 88.2%

Strategy

How does it move?

It moves like Wallaby with some improvements to the agility and overall stability. So Minimum Risk combined with Anti Gravity and Oscillating.

How does it fire?

The gun is a single tick pattern matcher that can hold 5.000.000+ pattern per melee match and using all available memory. The average pattern count is 1.000.000+ and is using roughly 100MB. The gun extracts the target angles from the saved pattern in almost no time by looking for the most taken steps and than it plays forward until the bullet would reach the target. It started with a match length of 70 (nice long term match) but after some test it is now 30 (quick adaptation, smaller memory use). The gun can detect wall collisions and take the most used pattern for wall hits (needs some improvement but works quite well right now). The target is classified by velocity and heading change (needs more research)

How does it select a target to attack/avoid?

It takes the closest enemy but holds the lock on targets with high bullet bonus. The targeting has a minor favor for targets with weak movement pattern. If the bot is not the nearest target to anyone it targets with a rating by bulletScore, start pattern length, distance and if only two opponents left, it targets the one with the least energy.

What does it save between rounds and matches?

matches - nothing
rounds - static variables just to save code size, and the collected pattern for every enemy


Additional Information

Where did you get the name?

Well it came from Numbat, an Australian marsupial.

Can I use your code?

Sure it's open source RWPCL.

What's next for your robot?
  • it needs more research for the gun to improve the overall usability
    • the target state needs some research to classify the pattern selection
    • start pattern len is a major detector and needs more research
    • dynamic match length for strong movements to save memory and increase the hit rate (tried but needs more thoughts)
    • need some advanced pattern selection, using only 'most visited' gives worse results against oscillators and 'jiggler'
  • the radar need some fixes to be faster
    • the radar is very smooth now and works very well
  • finally the movement has to be ready for 1vs1 to hold the bot in the top 10
    • still true
    • i should try to implement some basic dodge movement for simple guns - melee
  • the code size should fit the mini class
    • well i gave up on the mini idea to have more room for research stuff (maybe if the gun is sound i try it later to squeeze it in a mini bot)
Does it have any White Whales?

After reaching the first goal ( top 10) i found my first white whale - Tron.

Unbelievable how this bot can hold himself in the top 10. If you have a look at his movement you would be surprised as i am. The movement is extraordinaire against all simple guns and it is almost unimportant where he stays on the battlefield. He 'magically' survives no matter what. Compare this with a strong gun and Tron makes a very nasty white whale.

What other robot(s) is it based on?

The gun is based on the tutorial bot SingleTick a bot of Simonton. The movement is based on Wallaby another bot of mine. The radar is not based on anyone

Credit

Credit goes to Simonton for inventing the Single Tick Pattern matcher idea and making it understandable to me. Of course credit to all RoboWiki contributors for making it easy to learn RoboCode