Numbat

From RoboWiki
Jump to: navigation, search
Numbat
Author(s) Wompi
Extends AdvancedRobot
Targeting Single Tick Pattern Matcher
Movement Minimum Risk
Antigrav
Oscillating
Released August 2012
Current Version 2.1
Code License RWPCL
Download
Sub-pages:
Version History

Background Information

What's special about it?
This bot is a try to make Single Tick Pattern Matcher competitive for the melee rumble and therefore 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.62% (12th), PL: 390-9 (10th), Survival: 44.09%

Strategy

How does it move?
It moves like Wallaby with some improvements to the agility and overall stability. So Minimum Risk Movement combined with Anti-Gravity Movement and Oscillating Movement.
How does it fire?
The gun is a single tick pattern matcher that can hold 5000000+ patterns per melee match and using all available memory. The average pattern count is 1000000+ 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 then 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 testing it is now 30 (fast adaptation, less memory usage). 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 bullet score, 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 extraordinary 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 anything.
Credits
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.
Personal tools